Unity中的坐标系
- 世界坐标系
- 本地坐标系
- 屏幕坐标系
- 视口坐标系
- 各个坐标系相互转换的API
世界坐标系
原点:世界的中心
轴向:世界坐标系的三个轴向是固定的
相关API:
transform.position;
transform.rotation; 四元数
transform.eulerAngles; 欧拉角
transform.lossyScale;
移动根据世界坐标系移动
本地坐标系
原点:物体的中心点(建模时决定,一般都是物体的中心点)
轴向:
物体右
方为X
轴正
方向
物体上
方为Y
轴正
方向
物体前
方为Z
轴正
方向
相关API:
transform.localPosition;
transform.localRotation; 本地四元数
transform.localEulerAngles; 本地欧拉角
transform.localScale;
物体移动根据自己的父物体决定
屏幕坐标系
原点:屏幕的左下角
轴向:
向右
为X
轴正
方向
向上
为Y
轴正
方向
相关API:
原点:(0,0)
右上角:(Screen.width,Screen.height)
屏幕坐标系图示:
视口坐标系
摄像机的视口范围
原点:屏幕左下角
轴向:
向右
为X
轴正
方向
向左
为Y
轴正
方向
相关API:
左下角(0,0)
右上角(1,1) 归一化
摄像机组件下的Viewport Rect
X:水平方向的偏移 Y:竖直方向的偏移
W:X轴方向的大小 H:Y轴方向的大小 取值范围0~1
各个坐标系相互转换的API
-
世界转本地
transform.InverseTransformDirection();
transform.InverseTransformPoint();
transform.TransformVector();
-
本地转世界
transform.TransformDirection();
transform.TransformPoint();
transform.TransformVector();
-
世界转屏幕
Camera.main.WorldToScreenPoint();
-
屏幕转世界
Camera.main.ScreenToWorldPoint();
-
世界转视口
Camera.main.WorldToViewportPoint();
-
视口转世界
Camera.main.ViewportToWorldPoint();
-
视口转屏幕
Camera.main.ViewportToScreenPoint();
-
屏幕转视口
Camera.main.ScreenToViewportPoint();
如有错误欢迎指正!