靜態方法
1.Vector3.Angle()--兩個向量之間的夾角
public static float Angle(Vector3 from, Vector3 to)
- 單位:度;
- 範圍0-180度(返回兩個向量之間較小的角度);
- 通常用於物體的轉向操作
2.Vector3 ClampMagnitude()--鉗制求模
public static Vector3 ClampMagnitude(Vector3 vector, float maxLength)
- 返回一個向量的模,最大長度不超過maxLength;
3.Vector3 Cross()--叉積
public static Vector3 Cross(Vector3 lhs, Vector3 rhs);
- 返回垂直於a,b,兩個向量所在平面的另一個向量;
- 模長|c|=|a||b|sin<a,b>
4.Vector3.Dot()--點積
public static float Dot(Vector3 lhs, Vector3 rhs);
- a·b=|a|·|b|cos<a,b>
5.Vector3.Distance()--兩點距離
public static float Distance(Vector3 a, Vector3 b);
- 返回兩點之間的一個長度值,相當於(a-b).magnitude
6.Vector3.Lerp() --差值
public static Vector3 Lerp(Vector3 a, Vector3 b, float t);
- 由向量a漸變到向量b.
-
使用:一般用於平滑處理,比如攝像機的緩慢移動、導彈的追蹤等
m_Transform.position = Vector3.Lerp(m_Transform.position, newPos, Time.deltaTime)
7.Vector3.LerpUnclamped() --鉗制差值
public static Vector3 LerpUnclamped(Vector3 a, Vector3 b, float t)
- 改插值t在小於0或大於1時的返回值不會被限制
- 按公式(b-a)*t來計算其返回值.
8.Vector3.MoveTowards()--移動到目標位置
public static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);
- 這個函數的返回值是一個點,以maxdistancedelta爲單位速度沿着當前的和目標之間的線接近目標點
- 移動不會超過目標。maxdistancedelta爲負值時,可以用來從目標推開該向量
9.Vector3.Normalize()--向量單位化
public static Vector3 Normalize(Vector3 value);
- 單位化一個向量,會改變這個向量本身,如果這個向量小於1,那麼就將其置爲0
- 使用靜態變量Vector3.Normalized可以避免改變這個向量本身
10.Vector3.Project()-投影於線
public static Vector3 Project(Vector3 vector, Vector3 onNormal)
- 求一個向量在另一個向量方向上的投影
11.Vector3.ProjectOnPlane()-投影於面
public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal)
- 求一個向量在一個平面上的投影
- planeNormal:指的是該平面的法向量
12.Vector3.Reflect()-反射向量
public static Vector3 Reflect(Vector3 inDirection, Vector3 inNormal)
- 以一個平面的法向量爲法線,求inDirection的反射向量
- inNormal:指的是平面的法向量;inDirection:指的是入射光線
13.Vector3.Slerp()-球形差值
public static Vector3 Slerp(Vector3 a, Vector3 b, float t)
- 插值的向量的長度是均勻線性變化的
- 插值的向量之間的角度是一樣大的