Unity3D的四種坐標系
【Unity3D的四種坐標系】
1、World Space(世界坐標):我們在場景中添加物體(如:Cube),他們都是以世界坐標顯示在場景中的。transform.position可以獲得該位置坐標。
2、Screen Space(屏幕坐標):以像素來定義的,以屏幕的左下角為(0,0)點,右上角為(Screen.width,Screen.height),Z的位置是以相機的世界單位來衡量的。注:鼠標位置坐標屬于屏幕坐標,Input.mousePosition可以獲得該位置坐標,手指觸摸屏幕也為屏幕坐標,Input.GetTouch(0).position可以獲得單個手指觸摸屏幕坐標。
Screen.width =?Camera.pixelWidth
Screen.height = Camera.pixelHeigth
3、ViewPort Space(視口坐標):視口坐標是標準的和相對于相機的。相機的左下角為(0,0)點,右上角為(1,1)點,Z的位置是以相機的世界單位來衡量的。
4、繪制GUI界面的坐標系:這個坐標系與屏幕坐標系相似,不同的是該坐標系以屏幕的左上角為(0,0)點,右下角為(Screen.width,Screen.height)。
【四種坐標系的轉(zhuǎn)換】
1、世界坐標→屏幕坐標:camera.WorldToScreenPoint(transform.position);這樣可以將世界坐標轉(zhuǎn)換為屏幕坐標。其中camera為場景中的camera對象。
2、屏幕坐標→視口坐標:camera.ScreenToViewportPoint(Input.GetTouch(0).position);這樣可以將屏幕坐標轉(zhuǎn)換為視口坐標。其中camera為場景中的camera對象。
3、視口坐標→屏幕坐標:camera.ViewportToScreenPoint();
4、視口坐標→世界坐標:camera.ViewportToWorldPoint();
作者:倪政陽