1. Vector 表示向量、矢量的意思,含有大小和方向;Vector3 由名可得表示三维向量,包含想 x, y, z 三个分量(供自学记录)。
2.简单理解Vector3就是相当于一个类,可直接new. 其中xyz三维坐标系可参考左手坐标系(拇指指向自己方向)。一般在使用中transform下的position、scale、rotation等属性都可以通过设置Vector3的值来改变其相应的位置、大小(transform详见下篇)。
public class Test : MonoBehaviour {
// 初始化
void Start () {
Vector3 v = new Vector3 ();
float x = v.x;
float y = v.y;
float z = v.z;
// 获取 V 的单位向量
// V 的长度会变为 1 但⽅向不变
v.Normalize ();
// 返回 V ⽅向上的单位向量,但是 V本⾝不会发⽣变化
v.normalized;
// 获取 V 的长度
float l = v.magnitude;
// x = 0,y = 1, z = 0
Vector3.up; // 表⽰世界坐标系中 Y 轴正⽅向上的单位向量
// x = 0,y = -1, z = 0
Vector3.down; // 表⽰世界坐标系中 Y 轴负⽅向上的单位向量
// x = -1,y = 0, z = 0
Vector3.left; // 表⽰世界坐标系中 X 轴负⽅向上的单位向量
// x = 1,y = 0, z = 0
Vector3.right; // 表⽰世界坐标系中 X 轴正⽅向上的单位向量
// x = 0,y = 0, z = 1
Vector3.forward; // 表⽰世界坐标系中 Z 轴正⽅向上的单位向量
// x = 0,y = 0, z = -1
Vector3.back; // 表⽰世界坐标系中 Z 轴负⽅向上的单位向量
Vector3.zero; // 表⽰原点
Vector3 v1 = new Vector3 (1.5f, 1.0f, 1.0f);
Vector3 v2 = new Vector3 (1.0f, 1.5f, 1.5f);
// 两个向量间的夹⾓
float angle = Vector3.Angle (v1, v2);
Vector3 pos1 = new Vector3 (4.0f, 2.0f, 1.0f);
Vector3 pos2 = new Vector3 (2.0f, 4.0f, 1.0f);
// 获取两个点之间的距离
float distance = Vector3.Distance(pos1, pos2);
// 向量的点乘
float dd = Vector3.Dot (v1, v2);
// 向量叉乘
Vector3 vc = Vector3.Cross (v1, v2);
}
void Update () {
}
}
3.其他方法
public static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta)
public static Vector3 Project(Vector3 vector, Vector3 onNormal)
public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal)