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