您的位置:首页 > 移动开发 > Unity3D

Unity 3D 学习笔记(一):关于坐标

2014-04-17 22:54 537 查看

一、Unity 3D坐标系和中学数学中的三维坐标系

中学学到的三维坐标系中,xoy平面是水平面,z轴竖直。而在Unity 3D的主视图中,xoz平面在视觉上是水平的,y轴是竖直的。这在我学习Unity之初给我造成了很大困惑,尤其是在之后的屏幕坐标和世界坐标的转换中。其实,Unity 3D中的z轴默认是正面,即正视图,而摄像机默认的就是朝向z轴的正方向。这样一来,在摄像机得到的坐标即后面的屏幕坐标)中,x轴和y轴就可以与世界坐标的x轴和y轴对应起来。

二、几种坐标及其转换

1、世界坐标(Global)
世界坐标是最常用的。在程序中将物体的坐标统一为世界坐标便于操作。很多函数返回的坐标值也是世界坐标,如Transform.position。
2、相对坐标(Local)
相对坐标是相对于当前目标的坐标系。这个坐标我很少用,所以不是很了解。以目前的经验来看,如果不对目标做旋转操作的话,Local和Global是一样的。如果做了旋转操作,Local坐标系会随着目标一起旋转。Local坐标系自从物体出现开始,相对于物体就不再变了。
3、屏幕坐标
屏幕坐标是以像素为单位、以屏幕左下角为(0,0)的坐标系。屏幕坐标系是一个二维坐标系,但是,在
Unity 3D中,屏幕坐标是有z分量的。屏幕坐标的z分量是当前活动相机的z坐标,而其x,y坐标分别相当于水平方
向、垂直方向上在相机视野中所占的百分比。

目前用到过的坐标转换:
屏幕坐标转世界坐标:  Component.Behaviour.Camera.ScreenToWorldPoint(Vector3 p)
在使用这个函数的时候,要注意p的z坐标,应该是和相机的相对距离。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 3d