NO IMAGE

Static變數:特殊向量的縮寫,只讀

public static Vector3 back { get; }
說明:Vector3(0, 0, -1) 縮寫

public static Vector3 down { get; }
說明:Vector3(0, -1, 0) 縮寫

public static Vector3 forward { get; }
說明:Vector3(0, 0, 1) 縮寫

public static Vector3 left { get; }
說明:Vector3(-1, 0, 0) 縮寫

public static Vector3 one { get; }
說明:Vector3(1, 1, 1) 縮寫

public static Vector3 right { get; }
說明:Vector3(1, 0, 0) 縮寫

public static Vector3 up { get; }
說明:Vector3(0, 1, 0) 縮寫

public static Vector3 zero { get; }
說明:Vector3(0, 0, 0) 縮寫

建構函式:預設建構函式為 0 向量
public Vector3(float x, float y);
public Vector3(float x, float y, float z);
說明:傳入各座標值,預設為0,因為為結構體所以物件為值型別

Public變數:

public float magnitude { get; }
說明:返回向量的長度,若只是比較向量大小 則應該使用 sqrMagnitude

public Vector3 normalized { get; }
說明:返回向量的單位向量,返回一個新的向量,不改變向量值。若向量太小可能會返回一個 0 向量

public float sqrMagnitude { get; }
說明:計算向量長度的平方很快,所以比較向量大小就使用這個屬性

public float this[int index] { get; set; }
說明:使用索引器的方式訪問 x = [0],y = [1],z = [2] 的值

public float x;
public float y;
public float z;
說明:該向量的三個座標值

Public函式:

public void Normalize();
說明:將當前向量單位化,將改變當前向量的值,若不想改變則用屬性 normalized 代替。若太小則返回0 向量
public void Set(float new_x, float new_y, float new_z);
說明:設定已經存在向量的 x, y, z值
public void Scale(Vector3 scale);
說明:將此向量按照 scale 放大
public override string ToString();
public string ToString(string format);
說明:返回向量的字串格式

Static函式:

public static float Angle(Vector3 from, Vector3 to);
說明:獲取兩個向量間的夾角 [0, 180],無順序
public static Vector3 ClampMagnitude(Vector3 vector, float maxLength);
說明:返回單位向量與 vector 相同,大小為 maxLength 的向量
public static Vector3 Cross(Vector3 lhs, Vector3 rhs);
說明:返回 lhs x rhs 的 法向量,使用左手法則
public static float Distance(Vector3 a, Vector3 b);
說明:返回 a 向量 與 b 向量的距離。(a – b)的 magnitude
public static float Dot(Vector3 lhs, Vector3 rhs);
說明:返回 lhs * rhs
public static Vector3 Lerp(Vector3 a, Vector3 b, float t);
public static Vector3 LerpUnclamped(Vector3 a, Vector3 b, float t);
說明:線性 a b 中插入一個向量, t [0,1] 表示 [a, b] 之間
ublic static Vector3 Max(Vector3 lhs, Vector3 rhs);
public static Vector3 Min(Vector3 lhs, Vector3 rhs);
說明:由兩個向量中的最大(最小)值組成新的向量
public static Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta);
說明:將 current 在與 target 組成的方向向量上 移動 maxDistanceDelta,不超過target
public static Vector3 Normalize(Vector3 value);
說明:返回 value 的單位向量,不改變 value 的值
public static void OrthoNormalize(ref Vector3 normal, ref Vector3 tangent);
public static void OrthoNormalize(ref Vector3 normal, ref Vector3 tangent, ref Vector3 binormal);
說明:單位化 normal, 單位化 tangent,並使他與 normal 正交, 單位化 binormal,使他與前面兩個正交
public static Vector3 Project(Vector3 vector, Vector3 onNormal);
說明:返回 vector 投影在 onNormal 方向上的向量
public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal);
說明:返回 vector 投影在與 planeNormal 正交的平面上的向量
public static Vector3 Reflect(Vector3 inDirection, Vector3 inNormal);
說明:返回 inDirection 在與 inNormal 正交的螢幕的反射向量
public static Vector3 RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta);
說明:current 向 target旋轉 maxRadiansDelta 角度,(maxMagnitudeDelta), 最終 current 最多與 target 相同或相反
public static Vector3 Scale(Vector3 a, Vector3 b);
說明:返回 向量 a 以向量b 放大後的向量
public static Vector3 Slerp(Vector3 a, Vector3 b, float t);
public static Vector3 SlerpUnclamped(Vector3 a, Vector3 b, float t);
說明:返回a 與 b 夾角間的一個向量, t 表示偏向於哪一個向量
public static Vector3 SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime);
public static Vector3 SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime, float maxSpeed);
public static Vector3 SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime, float maxSpeed, float deltaTime);
說明:逐漸將一個向量移動到目標位置
current :當前座標
target :目標座標
currentVelocity :每次呼叫該函式獲取的速度
smoothTime :大約花費的時間,值越小,速度越大
maxSpeed :限制最大的速度
deltaTime :呼叫事件間隔,預設為 Time.deltaTime.

操作符過載與 Vector2 相同