U2L3——坐标系
U2L3——坐标系
本章代码关键字
1 | //世界坐标系 |
Unity坐标系
unity有各种不同的坐标系,这些坐标系相互之间也有转换方法
Unity各种坐标系
世界坐标系
原点是世界的中心点
世界坐标系的三个轴向是固定的
物体坐标系
原点是物体的中心点(建模时决定),轴向:
- 物体右方为X轴正方向
- 物体上方为Y轴正方向
- 物体前方为Z轴正方向
屏幕坐标系
原点:屏幕左下角
轴向:向右为 X 轴正方向,向左为 Y 轴正方向
最大宽高:Screen.width、Screen.height
视口坐标系
原点:屏幕左下角
轴向:向右为X轴正方向,向左为Y轴正方向
特点:左下角为(0, 0),右上角为(1, 1),和屏幕坐标类似,将坐标单位化
坐标获取
这里具体的内容在Transform,Input.mousePosition,Screen,Camera里有
直接获取
获取对象在物体世界坐标系的信息(Transform)
1 | this.transform.position; //对象相对于世界坐标系的位置的属性 |
获取对象在父对象物体坐标系的信息(Transform)
1 | this.transform.localPosition; //对象相对于父对象坐标系的位置的属性 |
获取屏幕坐标系上的信息(Input.mousePosition,Screen.width)
1 | Input.mousePosition; //获取鼠标在屏幕的位置,返回值是Vector3,但是只有x和y有值 |
通过坐标转换获取
世界坐标系和父对象物体坐标系的转换(Transform的坐标转换)
1 | //世界转本地 |
世界坐标系和屏幕坐标系的转换Camera.WorldToScreenPoint()、Camera.ScreenToWorldPoint()
1 | Camera.main.WorldToScreenPoint() //世界坐标转屏幕坐标 x和y对应的就是屏幕坐标 z对应的是这个3D物体里屏幕所在的平面的距离 |
Camera的视口坐标系转换相关
视口坐标系与其他Unity坐标系相互转换的代码
1 | Camera.main.WorldToViewportPoint() //世界坐标系 转 视口坐标系 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 文KRIFE齐的博客!