Unity坐标系详解

1. World Space(世界坐标系):

  我们在场景中添加的物体(如:Cube),他们都是以世界坐标显示在场景中。transform.position 获取的便是这个  坐标数值。

2. Scene Space(屏幕坐标系):

  以像素来定义的,一屏幕的左下角(0,0)点右上角(Screen.with,Screen.height),Z轴的位置是以相机的世界单位来衡量的(个人感觉是世界坐标的Z值)。

  2.1 鼠标位置属于屏幕坐标,Input.mousePosition 可以获得该位置坐标。

  2.2 手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position 可以获得单个手指触摸屏幕的坐标。

  2.3 当有多个手指触摸屏幕时,Input.GetTouch(0).position会获取到多个点击点的中心位置。

  http://docs.unity3d.com/Documentation/Manual/Input.html

3. ViewPort Space(视口坐标):

  视口坐标系是标准的和相对于相机的。相机的左下角(0,0)点右上角(1,1)点,Z的数值是以相机的世界单位来衡量的(又是衡量的……)。

4.绘制GUI界面的坐标系(UI坐标):

  这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点右下角为(Screen.width,Screen.height);

【坐标系的相互转换】

  1. World Space --> Screen Space: camera.WorldToScreenPoint(transform.position);

  2. Screen Space --> ViewPort Space: camera.ScreenToViewportPoint(Input.mousePosition);

  3. ViewPort Space-->Screen Space: camera.ViewportToScreenPoint();

  4. ViewPort Space-->World Space: camera.ViewportToWorldPoint();

参考:https://www.cnblogs.com/tekkaman/p/3809409.html

原文地址:https://www.cnblogs.com/leiGameDesigner/p/8032094.html