1. 程式人生 > >Unity 世界座標轉UI座標

Unity 世界座標轉UI座標

Unity中有四種座標系
1. World Space(世界座標):三維空間座標,浮點數。
2.Screen Space(螢幕座標):以畫素來定義的,以螢幕的左下角為(0,0)點,右上角為(Screen.width,Screen.height),Z的位置是以相機的世界單位來衡量的。
3.ViewPort Space(視口座標):視口座標是標準的和相對於相機的。相機的左下角為(0,0)點,右上角為(1,1)點,Z的位置是以相機的世界單位來衡量的。
4.UGUI介面的座標系:與錨點有關,錨點(在父UI的座標為(x1, y1))所在位置即為(0,0),X座標範圍為(-x1,Screen.width-x1),y座標範圍為(-y1,Screen.height-y1)。

Vector3 ptScreen = Camera.main.WorldToViewportPoint(transform.position);

//錨點位置左下角
Vector2 viewPortRelative = new Vector2(e.ptScreen.x, e.ptScreen.y);


//錨點位置正中
//Vector2 viewPortRelative = new Vector2(e.ptScreen.x - 0.5f, e.ptScreen.y - 0.5f);

Vector2 cubeScreenPos = new Vector2(viewPortRelative.x * Screen.width, viewPortRelative.y * Screen.height);