游戏开发常用数学知识:向量
下面的图展示了一个二维向量 v = (x, y)。
向量加法示意图
点乘用于判断两个方向之间的关系。
Unity 中写法:
float dot = Vector3.Dot(a, b);
如果两个向量都是单位向量,那么点乘结果和夹角有关:
投影可以理解为:
一个向量在另一个方向上占了多少
Unity 中可以使用:
Vector3 projected = Vector3.Project(vector, onNormal);
叉乘在三维空间中常见。
Unity 中写法:
Vector3 cross = Vector3.Cross(a, b);
叉乘的结果是一个新的向量,这个向量垂直于原来的两个向量。
叉乘示意图
常见 Unity 向量 API
| API | 作用 |
|---|---|
v.magnitude | 获取向量长度 |
v.sqrMagnitude | 获取向量长度的平方 |
v.normalized | 获取归一化后的方向 |
Vector3.Distance(a, b) | 获取两点之间的距离 |
Vector3.Dot(a, b) | 点乘,判断方向关系 |
Vector3.Cross(a, b) | 叉乘,判断垂直方向或左右关系 |
Vector3.Project(a, b) | 把向量 a 投影到方向 b 上 |
Vector3.Lerp(a, b, t) | 线性插值 |
Vector3.MoveTowards(a, b, maxDistanceDelta) | 向目标移动 |
Comments
评论区
欢迎在这里留言交流。