Unity3D中的座標系總結

2021-08-03 23:46:31 字數 1325 閱讀 7530

一 、unity中一共有四種座標系,分別為:

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軸的值是攝像機的世界座標取反。

二、 相互轉換

例子:print(

"世界座標"

+ obj.transform.position);

print(

"螢幕座標"

+ input.mouseposition

.position);

print(

"世界座標→螢幕座標"

+ camera.worldtoscreenpoint(obj.transform.position)); 

print(

"螢幕座標→視口座標"

+ camera.screentoviewportpoint(input.mouseposition.position)); 

print(

"世界座標→視口座標"

+ camera.worldtoviewportpoint(obj.transform.position));

Unity3D 參考座標系

參考座標系 reference coordinate system 列表是讓你指定用於變換 移動move 旋轉rotate和縮放scale 的座標系。選項包括檢視座標view,螢幕座標screen,世界座標world,父座標parent,區域性座標local,網格座標grid和拾取座標pick。在螢...

unity3d 參考座標系

參考座標系 reference coordinate system 列表是讓你指定用於變換 移動move 旋轉rotate和縮放scale 的座標系。選項包括檢視座標view,螢幕座標screen,世界座標world,父座標parent,區域性座標local,網格座標grid和拾取座標pick。在螢...

unity3d 參考座標系

參考座標系 reference coordinate system 列表是讓你指定用於變換 移動move 旋轉rotate和縮放scale 的座標系。選項包括檢視座標view,螢幕座標screen,世界座標world,父座標parent,區域性座標local,網格座標grid和拾取座標pick。在螢...