untiy中各種坐標系及其轉(zhuǎn)換

本文主要總結(jié)一下unity中最常用的幾種坐標系。世界坐標系田炭、局部坐標系师抄、屏幕坐標系、視口坐標系教硫。以及它們之間的相互轉(zhuǎn)換叨吮。

1.世界坐標系

unity是使用的左手坐標系,


image.png

顧名思義瞬矩,世界坐標系就是物體在整個世界坐標系中的位置茶鉴,在unity中transform.position代表的就是該物體的世界坐標,transform.localPosition就是該物體的局部坐標景用,局部坐標是以該節(jié)點的父節(jié)點為基準的一個位置涵叮。


image.png

2.屏幕坐標系

屏幕坐標系就是把屏幕看作一個坐標系,從左下角開始計算,也就是(0,0)割粮,而右上角則是(Screen.widht,Screen.height)盾碗,所以又叫做像素坐標系。Screen.currentResolution指的是設備分辨率舀瓢,比如:電腦上指的就是電腦的屏幕分辨率廷雅,手機上指的就是手機的屏幕分辨率。Screen.width,Screen.height - 指的是使用該值的窗口的寬高京髓,比如:在Scene窗口使用指的就是Scene窗口的寬高航缀,在Game窗口使用,即運行編輯器時使用朵锣,指的就是Game窗口的寬高谬盐,在自定義的Window使用指的就是自定義的Window的寬高。理論上在手機上這兩個值是相同的诚些,但是為了保險起見還是統(tǒng)一使用Screen.width,Screen.height 飞傀。(Screen.currentResolution在一些編輯器自定義窗口時可能會用到)

void Start()
    {
        Debug.Log("當前窗口的分辨率為:" + Screen.width + "X" + Screen.height);
        Debug.Log("當前屏幕的分辨率為:" + Screen.currentResolution);
    }

鼠標位置坐標Input.mousePosition就是屬于屏幕坐標系,通過屏幕坐標和世界坐標互轉(zhuǎn)诬烹,可得到鼠標在Unity3D中的實際交互位置砸烦,然后就可以通過邏輯做出反饋。

3.視口坐標系

該坐標系計算方式和屏幕坐標系類似绞吁,只不過把其參數(shù)標準化了幢痘,更加適用于比例計算。左下角為(0,0) 右上角為(1,1)家破。比如需要把屏幕劃分成等份的時候颜说,就可以統(tǒng)一轉(zhuǎn)換為視口坐標系再來進行操作。


image.png

這里不管是視口坐標還是屏幕坐標汰聋,其z值還是有的门粪,是表示深度的。

3.GUI坐標系

該坐標是從左上角開始計算的烹困,左上角(0,0)玄妈,右下角為(Screen.width,Screen.height);

坐標系的相互轉(zhuǎn)換

1.世界坐標和屏幕坐標的相互轉(zhuǎn)換

屏幕坐標轉(zhuǎn)世界坐標
Camera.ScreenToWorldPoint(Vector3 Pos);

世界坐標轉(zhuǎn)屏幕坐標
Camera.WorldToScreenPoint(Vector3 Pos);

關于應用:
這些轉(zhuǎn)換一般應用于想要通過鼠標來操作世界物體,比如物體跟隨鼠標移動
所以我們要通過巧妙的方式彌補這個Bug髓梅,代碼如下拟蜻。(這個寫法是網(wǎng)上查到的,我找不到出處了)

    void Update()
    {
        // 首先將要操縱的物體的世界坐標轉(zhuǎn)為屏幕坐標
        Vector3 screenPos = Camera.main.WorldToScreenPoint(transform.position);
        // 然后獲取鼠標的屏幕坐標
        Vector3 mousePos = Input.mousePosition;
        // 然后將已經(jīng)轉(zhuǎn)換好的物體的屏幕坐標的Z值賦給缺失z值的鼠標屏幕坐標
        mousePos.z = screenPos.z;
        // 然后將已經(jīng)完整的鼠標屏幕坐標轉(zhuǎn)成世界坐標
        Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
        // 最后每幀修改物體世界坐標位置
        transform.position = worldPos;
    }

2.世界坐標和視口坐標的相互轉(zhuǎn)換

世界坐標轉(zhuǎn)視口坐標
Camera.WorldToViewportPoint(Vector3 Pos)

視口坐標轉(zhuǎn)世界坐標
Camera.ViewportToWorldPoint(Vector3 Pos);

3.屏幕坐標和視口坐標的相互轉(zhuǎn)換

屏幕坐標轉(zhuǎn)視口坐標
Camera.ScreenToViewportPoint(Vector3 Pos)

視口坐標轉(zhuǎn)屏幕坐標
Camera.ViewportToScreenPoint(Vector3 Pos);

參考:https://blog.csdn.net/weixin_43147385/article/details/124230124

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末枯饿,一起剝皮案震驚了整個濱河市酝锅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奢方,老刑警劉巖搔扁,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件擒权,死亡現(xiàn)場離奇詭異,居然都是意外死亡阁谆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門愉老,熙熙樓的掌柜王于貴愁眉苦臉地迎上來场绿,“玉大人,你說我怎么就攤上這事嫉入⊙娴粒” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵咒林,是天一觀的道長熬拒。 經(jīng)常有香客問我,道長垫竞,這世上最難降的妖魔是什么澎粟? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮欢瞪,結(jié)果婚禮上活烙,老公的妹妹穿的比我還像新娘。我一直安慰自己遣鼓,他們只是感情好啸盏,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骑祟,像睡著了一般回懦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上次企,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天大诸,我揣著相機與錄音,去河邊找鬼憾朴。 笑死介粘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蛉谜。 我是一名探鬼主播稚晚,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼型诚!你這毒婦竟也來了客燕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狰贯,失蹤者是張志新(化名)和其女友劉穎也搓,沒想到半個月后赏廓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡傍妒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年幔摸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颤练。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡既忆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗦玖,到底是詐尸還是另有隱情患雇,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布宇挫,位于F島的核電站苛吱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏器瘪。R本人自食惡果不足惜翠储,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望橡疼。 院中可真熱鬧彰亥,春花似錦、人聲如沸衰齐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耻涛。三九已至废酷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間抹缕,已是汗流浹背澈蟆。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卓研,地道東北人趴俘。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像奏赘,于是被迫代替她去往敵國和親寥闪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容