目錄
什么是 AddTorque()?
第一性原理出發:什么是 Torque(力矩)?
Torque 公式?
Unity 中 AddTorque 的工作原理
參數屬性
🔍 Linear Drag(線性阻力)
線性阻力模擬的現實情況:
?🔄 Angular Drag(角阻力)
?? ?Gravity Scale(重力縮放因子)?
? mass(質量)
? inertia(轉動慣量,Unity 內部計算)
📘 專業術語解釋
Rigidbody2D 中的相關屬性
什么是 AddTorque()
?
AddTorque()
是 Unity 中用于對物體施加旋轉力矩(Torque)的方法,從而讓剛體圍繞其中心軸開始旋轉。
它是 Rigidbody / Rigidbody2D 的方法之一,作用是讓剛體旋轉起來,而不是平移。
第一性原理出發:什么是 Torque(力矩)?
在物理學中:
?Torque(力矩,中文也叫“轉矩”)是使物體產生“旋轉加速度”的量。
類比:開門的感覺
想象你要打開一扇門。
-
你把手放在門邊緣用力一推,門很容易旋轉打開;
-
但你把手放在靠近門軸的地方推,門很難轉動。
這說明:
相同的力,距離門軸越遠,產生的“轉動效果”越強。?
?這個轉動效果就叫Torque(力矩)。
Torque 公式?
我們從經典物理公式來看:?
τ = r × F?
其中:
-
τ
(tau)是力矩(Torque) -
r
是從轉軸到施力點的距離(位置向量) -
F
是施加的力(向量) -
×
是叉乘,表示方向性(右手法則)
這意味著:
一個力要想讓物體旋轉,它不僅要有大小,還要有正確的方向和施力點位置。
Unity 中 AddTorque 的工作原理
在 Unity 中調用:
Rigidbody2D rb;
rb.AddTorque(10f);
?就相當于說:
給這個剛體一個大小為 10 的順時針力矩,讓它旋轉。?
正負號表示旋轉方向:
數值 | 方向(以Z軸為旋轉軸) |
---|---|
正數(+10f ) | 逆時針旋轉(Counterclockwise) |
負數(-10f ) | 順時針旋轉(Clockwise) |
參數屬性
屬性名 | 中文名 | 控制什么 | 類比 |
---|---|---|---|
mass | 質量 | 物體對加速度的抵抗 | 重物更難推動 |
gravityScale | 重力縮放 | 控制重力影響力的大小 | 讓物體掉落更快或更慢 |
linearDrag | 線性阻力 | 控制物體移動減速的快慢 | 像空氣阻力或地面摩擦 |
angularDrag | 角阻力 | 控制物體旋轉減速的快慢 | 像陀螺的摩擦減速 |
inertia (只讀) | 轉動慣量 | 控制旋轉的“慣性” | 更大更重的輪子轉起來慢停下來也慢 |
🔍 Linear Drag(線性阻力)
Linear Drag 是物體移動時遇到的空氣阻力/摩擦力,用來減慢它的平移運動。?
它模擬的是現實生活中的“空氣阻力”或“地面摩擦”,作用方向總是與當前速度方向相反。?
線性阻力模擬的現實情況:
情況 | Linear Drag 值 |
---|---|
真空環境,完全無阻力 | 0 |
空氣中滑動 | 0.1 ~ 2 |
水中滑動 | 5 ~ 20 |
沙地或粘性液體 | 20+ |
?🔄 Angular Drag(角阻力)
Angular Drag 是物體旋轉時遇到的“空氣摩擦”或“軸摩擦”,減慢它的旋轉速度。?
如果你用 AddTorque()
讓一個輪子旋轉,但不想它永遠不停,那就靠這個。?
類比現實:
-
零角阻力 = 真空中的陀螺,永遠旋轉
-
高角阻力 = 在沙子里轉輪子,幾乎不動幾圈就停
?? ?Gravity Scale(重力縮放因子)?
Gravity Scale 控制物體受 Unity 世界重力影響的大小。?
默認 Unity 的世界重力是:?
Physics2D.gravity = new Vector2(0, -9.81f);
所以:
-
如果
gravityScale = 1
,物體受到的重力加速度是 -9.81 -
如果
gravityScale = 2
,它就受到 -19.62 的加速度 -
如果是 0,它就不受重力影響(比如幽靈、漂浮物)
類型 | gravityScale 建議值 |
---|---|
普通角色 | 1.0 |
飄浮生物/飛行物 | 0.0 |
重型機械 | 2.0 ~ 4.0 |
反重力物體 | -1.0 (會上升) |
? mass(質量)
-
控制物體受力后產生的加速度(F = m * a)
-
決定撞擊時的慣性(大質量 = 撞人更猛)
? inertia(轉動慣量,Unity 內部計算)
-
控制 Torque 轉得快不快
-
大慣量 = 更難旋轉/更難停
你不能手動設置 inertia
,但它由物體的 Collider 形狀 + mass 決定。
📘 專業術語解釋
術語 | 中文 | 含義 |
---|---|---|
Torque | 力矩 / 扭矩 | 一種“使物體旋轉”的力,與施力點和軸心的距離有關 |
Rigidbody / Rigidbody2D | 剛體 | Unity 中可以參與物理模擬的對象 |
Angular Velocity | 角速度 | 單位時間內旋轉的角度速度,單位是弧度/秒 或 度/秒 |
AddTorque(float torque) | 添加力矩 | 施加一個數值大小的旋轉力,正負號決定順/逆時針方向 |
Rigidbody2D 中的相關屬性
如果你用了 AddTorque()
,以下這些屬性會受到影響:
屬性 | 中文名 | 意義 |
---|---|---|
angularVelocity | 角速度 | 當前旋轉速度(°/s) |
inertia | 轉動慣量 | 物體對旋轉的抵抗能力 |
mass | 質量 | 會影響力矩產生的效果(和慣量一起決定旋轉加速度) |