Transform与坐标系
在Unity中除了Unity4.6之后的UGUI的UIPanel之外,所有你在场景中添加的组件在Inspector中都会有一个Transform组件。这个组建中包含了场景中每个物体的位置(Position),旋转(Rotation)和比例(Scale)信息。
这里笔者整理了Transform中常用的函数。详见Transform.xmind
物体的Transform信息都是相对于它父物体的Transform信息。如果没有父物体,那么该物体的Transform信息都是相对与世界坐标的。例如:在场景中添加一个Cube,然后再添加一个Cube1作为Cube的子物体。我们对Cube进行旋转,位移,缩放等等操作时,对Cube1中的Transform组件中的信息是没有影响的。这是因为Cube1的Transform中的所有信息都相对与Cube的。
坐标系
Unity中的常用坐标系有四种:
- 世界坐标系
我们在场景中添加物体(如:Cube),他们就是以世界坐标系显示在场景中,我们可以用tranform.position来获取。 屏幕坐标系
屏幕坐标系是以像素为单位的,以屏幕左下角为(0,0),右上角(scree.width,screen.height)。z的位置以相机的世界位置来衡量。screen.width=Camera.pixelWidth
screen.height=Camera.pixelHeight视口坐标系
视口坐标是相对于相机的,相机的左下角为(0,0),右上角为(1,1),z的位置是以相机的世界位置来衡量的。- 绘制UI坐标系
这个坐标属于屏幕坐标的一种,不同的这个坐标以屏幕的左上角为(0,0),右下角为(screen.width,screen.height)。
有关于坐标转换的方法
Unity中关于坐标转换的方法常用的有:
- TransformPoint ():把position从本地坐标转换为世界坐标
- InverseTransformP