Unity3D中的四種座標座標系

2021-07-29 18:56:25 字數 1112 閱讀 1383



1.世界座標系(worldspace):在場景中,有乙個座標原點(0,0,0) ,所有物體都是根據與它的相對位置來得到自己的世界座標,在掛載在自身的指令碼中通過 transform.position 來獲得 世界座標,在其他遊戲物體的指令碼中通過引入本遊戲物體,例如宣告乙個遊戲物體public gameobject go ,通過go.transform.position來獲得此遊戲物體的世界座標。

2.本地座標(localspace):遊戲物體除了有世界座標,還有乙個自身的座標,也稱為本地座標。在遊戲物體自身需要旋轉或者移動的時候,有時候可能會用到自身座標,例如

transform.translate(transform.up)朝著物體的上方運動(這裡還需要注意一點,transform.up 是朝著物體的上方運動,而不是朝著世界座標中的上方運動,vector3.up朝著世界座標中的上方運動,因為vector3.up恆等於(0,1,0),而transform.up是有可能隨時變化的)

3螢幕座標(screenspace):顧名思義,是物體在電腦螢幕中的座標,這裡的螢幕是在game檢視中,左下角為原點(0,0)右上角為(screen.width,screen.height),width是game檢視視窗大小的寬度,height是game視窗大小的高度,z值是攝像機世界座標取反。滑鼠的位置座標屬於螢幕座標。

4視口座標(viewportspace):攝像機的前面有乙個長方形的小框子,那個即為視口,左下角為座標原點(0,0),右上角為(1,1),z軸和螢幕座標一樣,指向你為z軸正方向,z軸的值是攝像機的世界座標取反。

二 相互轉換

1.世界座標轉換為本地座標:通常情況下相等。

2.世界座標轉換為螢幕座標:camera.main.worldtoscreenpoint(),螢幕座標轉換為世界座標:camera.main.screentoworldpoint();

3世界座標轉換為視口座標::camera.main.worldtoviewportpoint(),視口座標轉換為世界座標:camera.main.viewporttoworldpoint();

4視口座標轉換為螢幕座標:camera.main.viewporttoscreenpoint(),螢幕座標轉換為視口座標:camera.main.screentoviewportpoint();

Unity3D的四種座標系

world space 世界座標 我們在場景中新增物體 如 cube 他們都是以世界座標顯示在場景中的。transform.position可以獲得該位置座標。screen space 螢幕座標 以畫素來定義的,以螢幕的 左下角為 0,0 點,右上角為 screen.width,screen.hei...

Unity3D的四種座標系

unity3d的四種座標系 1 world space 世界座標 我們在場景中新增物體 如 cube 他們都是以世界座標顯示在場景中的。transform.position可以獲得該位置座標。2 screen space 螢幕座標 以畫素來定義的,以螢幕的左下角為 0,0 點,右上角為 screen...

Unity3D的四種座標系

unity3d的四種座標系 unity3d的四種座標系 1 world space 世界座標 我們在場景中新增物體 如 cube 他們都是以世界座標顯示在場景中的。transform.position可以獲得該位置座標。2 screen space 螢幕座標 以畫素來定義的,以螢幕的左下角為 0,0...