Unity3D 坐标系

Unity3D使用的是左手坐标系,即伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上。其余的手指指向前方。这样就建立了一个左手坐标系。拇指、食指和其余手指分别代表X,Y,Z轴的正方向。

1.世界坐标系:Unity3D中所有的Gameobjet在视图中都是以世界坐标显示在场景中(左手坐标系,3d空间),由transform.position可以获得该位置坐标。

2.屏幕坐标系:以像素定义的,以屏幕左下角为(0,0)点,右上角(Screen.width,Screen.height),Z的位置以相机的世界单位来衡量,实际上将一个空间3d的坐标转换到2d平面的一个坐标。(鼠标和手指触摸都属于屏幕坐标)

3.ViewPort Space(视口坐标):视口坐标是标准的和相对于相机的。相机的左下角为(0,0)点,右上角为(1,1)点,Z的位置是以相机的世界单位来衡量的。

【坐标系的转换】

1、世界坐标→屏幕坐标:Camera.WorldToScreenPoint(transform.position);

2、屏幕坐标→世界坐标:Camera.ScreenToWorldPoint(transform.position);

3、屏幕坐标→视口坐标:Camera.ScreenToViewportPoint(Input.GetTouch(0).position);

4、视口坐标→屏幕坐标:Camera.ViewportToScreenPoint();

5、视口坐标→世界坐标:Camera.ViewportToWorldPoint();

其中Camera为场景中的Camera对象。


InverseTransformPoint: 绝对坐标转相对坐标,也就是世界坐标转你想要放到的父节点下的相对坐标,

TransformPoint: 相对坐标转绝对坐标,也就是你想要放到的父节点下的相对坐标转成世界坐标,



我们经常在Inspect窗口查看的position是本地坐标LocalPostion(没有父节点的Gameobject除外,它的本地坐标与世界坐标相等),本地坐标系就是相当于父节点的坐标位置。

注意:坐标系中计算坐标位置是以pivot轴点的位置计算的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值