3D游戏开发中经常需要用到向量的运算,Unity中提供了完整的向量及向量操纵方法,分别为表示二维向量的Vector2类、表示三维向量的Vector3类与表示四维向量的Vector4类。这3种向量用法基本相同。
Vector一般与postion相互联动 或者作为一些API的变量
Vector3类可以在实例化时进行赋值
public class Vector : MonoBehaviour {
public Vector3 position1 = new Vector3();
public Vector3 position2 = new Vector3(1, 2, 2);
void Start()
{
position1.x = 1;
position1.y = 2;
position1.z = 2;
}
void Update()
{
transform.position = position1;
}
}
Vector3类中常量对应的值
常量 | 值 |
---|
Vector3.zero | Vector(0,0,0) | Vector3.forward | Vector(0,0,1) | Vector3.right | Vector(1,0,0) | Vector3.down | Vector(0,-1,0) | Vector3.one | Vector(1,1,1) | Vector3.up | Vector(0,1,0) | Vector3.back | Vector(0,0,-1) | Vector3.left | Vector(-1,0,0) |
这些向量常量可以方便使用,不必一直实例化
Vector3类中有很多对向量进行操纵的方法 Vector3类中属性与方法的作用
属性/方法 | 作用 |
---|
magnitude | a向量的长度 | normalized | 向量归一化后的结果 | sqrMagnitude | 向量的平方长度 | Lerp | 两个向量之间的线性插值 | Slerp | 在两个向量之间进行球形插值 | OrthoNormalize | 使向量规范化并且彼此相互垂直 | MoveTowards | 从当前的位置移向目标 | RotateTowards | 从当前的向量移向目标 | SmoothDamp | 随着时间的推移,逐渐改变一个向量朝向预期的目标 | Scale | 两个矢量组件对应相乘 | Cross | 两个向量的交叉乘积 | Reflect | 沿着法线反射向量 | Dot | 两个向量的点乘积 | Project | 投影一个向量到另一个向量 | Angle | 返回两个 向量的夹角 | Distance | 返回两点之间的距离 | Min | 返回两个向量中长度较小的向量 | Max | 返回两个向量中长度较大的向量 | operator+ | 两个向量相加 | operator+ | 两个向量相减 | operator* | 两个向量相乘 | operator/ | 两个向量相除 | operator== | 两个向量是否相等 |
|