您好,登錄后才能下訂單哦!
unity3d使用的是左手坐標系,即伸出左手,讓拇指和食指成“L”形,大拇指向右,食指向上。其余的手指指向前方。這樣就建立了一個左手坐標系。拇指、食指和其余手指分別代表x,y,z軸的正方向。
1、世界坐標系:unity3d中所有的gameobjet在視圖中都是以世界坐標顯示在場景中(左手坐標系,3d空間),由transform.position可以獲得該位置坐標。
2、屏幕坐標系:以像素定義的,以屏幕左下角為(0,0)點,右上角(screen.width,screen.height),Z的位置以相機的世界單位來衡量,實際上將一個空間3d的坐標轉換到2d平面的一個坐標。(鼠標和手指觸摸都屬于屏幕坐標)
3、ViewPort Space(視口坐標):視口坐標是標準的和相對于相機的。相機的左下角為(0,0)點,右上角為(1,1)點,Z的位置是以相機的世界單位來衡量的。
【坐標系的轉換】
1、世界坐標→屏幕坐標:camera.WorldToScreenPoint(transform.position);
2、屏幕坐標→世界坐標:camera.ScreenToWorldPoint(transform.position);
3、屏幕坐標→視口坐標:camera.ScreenToViewportPoint(Input.GetTouch(0).position);
4、視口坐標→屏幕坐標:camera.ViewportToScreenPoint();
5、視口坐標→世界坐標:camera.ViewportToWorldPoint();
其中camera為場景中的camera對象。
InverseTransformPoint: 絕對坐標轉相對坐標,也就是世界坐標轉你想要放到的父節點下的相對坐標,
TransformPoint: 相對坐標轉絕對坐標,也就是你想要放到的父節點下的相對坐標轉成世界坐標,
本地坐標LocalPostion(沒有父節點的gameobject除外,它的本地坐標與世界坐標相等),本地坐標就是相對于父節點的坐標相對位置,即父對象的pivot到該對象pivot的向量。
注意:坐標系中計算坐標位置是以pivot軸點的位置計算的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。