这里之记录比Vector2多处来的部分
Vector3和Vector2可以随意地相互转换,Vector2转Vector3时默认z为0
一、静态变量
静态变量 | 描述 |
---|---|
down | (0, 0, 1) |
back | (0, 0, -1) |
二、静态方法
方法 | 描述 |
---|---|
Cross(Vector3, Vector3) | 返回两个向量的叉积 (即与这两个向量组成平面垂直的那个方向) |
Project(Vector3, Vector3) | 返回第一个向量在第二个向量上的投影 |
Reflect(Vector3, Vector3) | 返回第一个向量以第二个向量为法线的反射向量 |
Slerp(Vector3 a, Vector3 b, float t) | 插值运算 a向量的长度到b向量的长度,以及a,b向量的夹角在t进度时的值 |
SlerpUnclamped(Vector3 a, Vector3 b, float t) | 插值运算 Slerp会在(a, b)之外的版本 |
- Vector3是一个三维向量集,是包含x,y,z的三元元组。
- 若想新建一个Vector3类型的三维向量集,可以使用如下代码
Vector3 pos = new Vector3(1, 2, 3);
- 向量之间可以进行几何计算,即加减乘除。
- Vector3有以下单位坐标
Vector3 Vector3.up;
Vector3 Vector3.down;
Vector3 Vector3.left;
Vector3 Vector3.right;
Vector3 Vector3.forward;
Vector3 Vector3.back;
Vector3 Vector3.zero;
Vector3 Vector3.one;
- Vector3.Distance(a,b) 求两个坐标之间的距离
- Vector3.Normalize(a) 将一个坐标规范化,即长度为1的单位向量
- 一个已经建立的Vector3对象有以下属性
float pos.x
float pos.y
float pos.z
- Vector3.MoveTowards(transform.position, end, Time.deltaTime);
每秒移动一个单位,从当前位置线性地移动到目标位置 - 旋转指定Vector3向量
// 前方
Vector3 forward = transform.forward;
// 顺时针旋转60度
forward = Quaternion.AngleAxis(60, Vector3.up) * forward;