OOIII/

Unity3D的4种坐标系

1、World Space(世界坐标):左手坐标系,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)。

【四种坐标系的转换】

经常会用到 某个物体的世界坐标到屏幕坐标的转化然后再屏幕上绘制出这个物体的代表性图片

1、Vector3 ScreenPos=Camera.WorldToScreenPoint(trans.Position); 2、GUIPos=new Vector3(ScreenPos.x,Screen.height-ScreenPos.y,0);

然后按照这个坐标绘制图片就可以了。

其他转换:

Camera.WorldToScreenPoint Camera.WorldToViewportPoint Camera.ScreenToViewportPoint Camera.ScreenToWorldPoint Camera.ViewportToScreenPoint Camera.ViewportToWorldPoint GUIUtility.ScreenToGUIPoint GUIUtility.GUIToScreenPoint