在不同的情况下使用不同的坐标系更加方便,所以在Unity中有多种坐标系:
1.全局坐标系 World Coordinate System
2.局部坐标系 Local Coordinate System
3.屏幕坐标系 Screen Space
4.视口坐标系 ViewPort Space
全局坐标系
全局坐标系是用于描述场景内所有物体位置的方向的基准,也称为世界坐标系。
在Unity中创建的物体都是以全局坐标系中的坐标原点(0,0,0),来确定各自的位置的。
可以使用transform.position来获取游戏对象的世界坐标。
局部坐标系
局部坐标系也称为模型坐标系或物体坐标系。
每个物体都有自身独立的物体坐标系。当物体移动或改变方向时,和该物体相关联的坐标系将随之移动或改变方向。
模型Mesh保存的顶点坐标均为局部坐标系下的坐标。
本地坐标
transform.localPosition(本地坐标)可以获得物体在父物体的局部坐标系中的位置点。
父子关系,子物体以父物体的坐标点为自身的坐标原点。
如果该游戏物体没有父物体,那么transform.localPosition获得的依然是该物体在全局坐标系中的坐标。
如果该物体有父物体,则获得是在其父物体的局部坐标系中的坐标。
检视视图中显示的为localPosition的值。
屏幕坐标系
屏幕坐标系是建立在屏幕上的二维坐标系。
以像素来定义的,屏幕的左下角为(0,0),右上角为(Screen.width, Screen.height),z轴的坐标是相机的世界坐标中z轴坐标的负值。
鼠标位置坐标属于屏幕坐标,通过Input.mousePosition可以获得该位置的坐标。
手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position可以获得单个手指触摸屏幕时手指的坐标。

这篇博客详细介绍了Unity3D中的各种坐标系,包括全局坐标系、局部坐标系、屏幕坐标系和视口坐标系,并阐述了它们之间的转换方法,如Transform类的相关函数,以及如何在不同坐标系间进行坐标转换。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



