1.unity中的几种坐标系:
- Unity中使用左手系,即z轴正向指向垂直屏幕内部。
(1)世界坐标系(World):transform.position获取,子物体transform里的position需叠加上它的父物体的position才是子物体的世界坐标。
- 叠加公式:每个当前层的position×上一层的scale值的求和(最上层默认上层scale为1)
(2)局部坐标系(Local):transform.localPosition获取,子物体本身transform里的坐标就是。
(3)屏幕坐标系(Screen):以像素为单位,屏幕左下角为(0,0),右上角为(screen.width,screen.height)。使用鼠标(input.mouseosition)或手指点击触屏获取到的都是屏幕坐标,对UI操作也基于屏幕坐标。
(4)视口坐标系(Viewport):相机有自己的视口坐标,物体要转换到视口坐标才能被看到。相机的视口左下角为(0,0),右上角为(1,1)。
转换方法:
camera.WorldToScreenPoint(transform.position)
camera.ScreenToViewportPoint
Camera.WorldToViewportPoint
2.向量运算
(1)单位化:Vector.normalized