【Unity引擎学习】数学知识在游戏开发中的应用

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 标识方向dir常用

  • 设两个位置V1,V2,则dir=(V2-V1).normalized

(2)两位置间距离:Vector3.Distance(Vector3 a,Vector3 b)

(3)点乘计算角度:Vector3.Dot(Vector3 a,Vector3 b),返回值为float型,是两向量夹角的弧度

(4)叉乘计算方位:Vector3.Cross(Vector3 a,Vector3 b),返回值为Vector3,可用来判断物体是顺时针旋转还是逆时针旋转为优。


版权声明:本文为m0_37590629原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。