2D樞紐關節 (Hinge Joint 2D)

2D樞紐/鉸鏈關節(Hinge Joint 2D) 是 Unity 中的一個 2D 物理組件。

  • 它可以讓遊戲物件(GameObject)圍繞一個特定的點旋轉
  • 這個關節可以讓兩個點重疊,這兩個點可以是
    • 兩個2D剛體(Rigidbody 2D)物件,或是
    • 一個2D剛體物件另一個為一個世界空間中固定的點。若要連接到世界空間中固定的點可以透過將 Connected Rigidbody 設為 None
  • 這個關節可以向連接的兩個點施加一個線性力(linear force)
  • 通常用於模擬門、槓桿或鐘擺等旋轉機制。

2D樞紐/鉸鏈關節(Hinge Joint 2D)具有三個約束條件,這些條件都是可選的

  1. 保持兩個2D剛體(Rigidbody 2D)物件上的兩個錨點(anchor point)之間的相對線性距離(relative linear distance)
    • 此約束確保錨點之間的距離保持不變。
  2. 保持兩個2D剛體(Rigidbody 2D)遊戲物件上的兩個錨點之間的角速度(angular speed)
    • 可以使用Maximum Motor Force屬性限制最大扭矩(maximum torque)來限制角速度。
  3. 保持角度(angle)在指定的弧度(arc)範圍內
    • 此約束確保角度在一定範圍內。

可以使用這個關節來建構需要像旋轉樞軸行為的物理遊戲物件。例如:

  • 翹翹板的樞軸(see-saw pivot):水平部分連接到基座。使用關節的角度(Angle)限制來模擬翹翹板的最高點和最低點。
  • 剪刀(scissors)的樞軸:剪刀用鉸鏈連接在一起。使用關節的角度限制來模擬剪刀的閉合和最大打開。
  • 簡單的車輪連接到車體:車輪的樞軸點在車輪的中心與車體相連。你可以使用2D樞紐/鉸鏈關節(Hinge Joint 2D) 的馬達(motor)來旋轉車輪。
屬性 功能
Enable Collision 啟用這個屬性後,可以偵測碰撞。
Connected Rigidbody 指定此關節連接到的其他遊戲物件(GameObject)。如果將此設置為「None」,則關節的另一端固定在由「Connected Anchor」設置定義的空間點。
Auto Configure Connected Anchor 啟用此屬性以自動設置此2D鉸鏈關節(Hinge Joint 2D)連接到的遊戲物件的錨點(Anchor)位置。如果啟用此屬性,則不需要為「Connected Anchor」屬性輸入座標。
Anchor 定義此遊戲物件的2D剛體(Rigidbody2D)上的關節(joint)端點連接的位置(以x、y座標表示)。
Connected Anchor 定義這個關節(joint)端點要連接到另一個遊戲物件的2D剛體(Rigidbody2D)上的位置(以x、y座標表示)。
Use Motor 啟用此選項以對關節應用馬達動力。
Motor 選擇此選項以展開此屬性的設置。
Motor Speed 設定馬達要達到的目標速度(每秒度數)。
Maximum Motor Force 設定馬達在嘗試達到目標速度時可以施加的最大扭矩(torque)(或旋轉力(rotation))。
Use Limits 啟用此選項以限制旋轉的角度(rotation angle)。
Angle Limits 選擇此選項以展開對角度限制的設置。當Use Limits啟用時,就會應用這些限制。
Lower Angle 設定旋轉圓弧(rotation arc)下端(lower end)允許的極限。
Upper Angle 設定旋轉圓弧(rotation arc)上端(upper end)允許的極限。
Break Action 設置當超過力(force)臨界值或達到扭矩臨界值(torque threshold)時採取的動作。
Break Force 設置力的臨界值,當超過時這個關節就會執行選擇的Break Action。預設值為Infinity,表示不執行Break Action
Break Torque 設置扭矩的臨界值,當超過時這個關節就會執行選擇的Break Action。預設值為Infinity,表示不執行Break Action

Reference

評論