2D車輪關節(Wheel Joint 2D
):是一種物理關節,可以用它來模擬轉動的車輪,
- 可以為它施加馬達動力(
motor power
), - 它使用了懸吊彈簧(
suspension spring
)來保持與車輛主體(main body of the vehicle
)的距離。
這種關節可用來模擬車輪(wheels
)和懸掛系統(suspension
)。其目的是保持兩個點在一條延伸到無限遠的直線上,同時使它們重疊(overlap
)。這兩個點可以是兩個Rigidbody2D
組件,也可以是一個Rigidbody2D
組件和世界中的一個固定位置(通過將Connected Rigidbody
設置為None
來連接到世界中的固定位置)。
- 簡單的說:2D車輪關節(
Wheel Joint 2D
),讓兩個點保持在同一條直線上,而這條直線是可以延伸到無限遠的。同時,當沒有外力作用時,這兩個點會保持在一起(即重疊)。
Wheel Joint 2D
類似於Slider Joint 2D
(無馬達動力或限制約束)和Hinge Joint 2D
(無限制約束)的組合。
這種關節對兩個連接的剛體(rigid body
)物件施加線性力(linear force
),使它們保持在線上,並施加角度馬達(angular motor
)以使物件在線上旋轉(rotate
),同時用彈簧(spring
)來模擬車輪懸掛(wheel suspension
)。
設置
Maximum Motor Speed(最大馬達速度)與Maximum Motor Force(最大馬達動力)控制角馬達速度,讓兩個剛體物體旋轉。
Maximum Motor Force(最大馬達動力):設置角馬達的最大扭矩。
- 即馬達所能施加的最大旋轉力。這個最大扭矩的設置對於控制車輪的轉動速度和力量非常重要。例如:
- 如果 Maximum Motor Force 設置得太小,馬達可能無法提供足夠的扭矩來驅動車輪,特別是在遇到障礙或需要加速的情況下。
- 如果 Maximum Motor Force 設置得太大,馬達可能會施加過大的扭矩,導致車輪快速旋轉,可能會影響車輛的穩定性
模擬懸掛
可以設置車輪懸掛的硬度和運動,以模擬不同程度的懸掛效果。例如,模擬硬且幾乎不動的懸掛:
- 設置高頻率(Frequency)(1,000,000是最高值)== 硬懸掛。
- 設置高阻尼比(Damping Ratio)(1是最高值)== 幾乎不動的懸掛。
若要模擬有彈性且自由運動的懸掛,可以使用以下設置:
- 設置低頻率 == 鬆弛的懸掛。
- 設置低阻尼比 == 可動的懸掛。
保持零相對線性距離(zero relative linear distance
):在兩個剛體物體的錨點之間指定的線上保持零相對線性距離。
保持角速度(angular speed
):在兩個剛體物體的錨點之間保持角速度(通過Maximum Motor Speed選項設置速度,通過Maximum Motor Force設置最大扭矩)。
應用場景
- 這種關節適用於構建需要像是通過旋轉樞軸連接,但不能脫離指定線的物理對象。例如:模擬具有馬達驅動的車輪。
屬性 | 功能 | |
---|---|---|
Enable Collision | 啟用這個屬性後,可以偵測碰撞。 | |
Connected Rigid Body | 指定此關節連接到的其他遊戲物件(GameObject )。如果將此設置為「None 」,則關節的另一端固定在由「Connected Anchor 」設置定義的空間點。 |
|
Auto Configure Connected Anchor | 啟用此屬性以自動設置此關節連接到的遊戲物件的錨點(Anchor )位置。如果啟用此屬性,則不需要為「Connected Anchor」屬性輸入座標。 |
|
Anchor | 定義此遊戲物件的2D剛體(Rigidbody2D )上的關節(joint )端點連接的位置(以x、y座標表示)。 |
|
Connected Anchor | 定義這個關節(joint )端點要連接到另一個遊戲物件的2D剛體(Rigidbody2D )上的位置(以x、y座標表示)。 |
|
Suspension | 選擇此選項以展開此屬性的設置。 | |
Damping Ratio(阻尼比 ) |
控制彈簧(spring )振盪(oscillation )的關節設置。較高的阻尼比意味著彈簧會更快停止振盪 |
|
Frequency | 設定遊戲物件接近所需分離距離時彈簧振盪的頻率(以每秒週期數為單位)。範圍為0到1,000,000,值越高,彈簧越硬,也就是說越不容易來回振動。注意:將頻率設置為零會創建最硬的彈簧類型關節(即不振動) | |
Angle | 設定懸掛系統(suspension )的世界(World )運動角度 |
|
Use Motor | 啟用此選項以對關節應用馬達動力。 | |
Motor | 選擇此選項以展開此屬性的設置。 | |
Motor Speed | 設定馬達要達到的目標速度(每秒度數)。 | |
Maximum Motor Force | 設定馬達在嘗試達到目標速度時可以施加的最大扭矩(torque )(或旋轉力(rotation ))。 |
|
Break Action | 設置當超過力(force )臨界值或達到扭矩臨界值(torque threshold )時採取的動作。 |
|
Break Force | 設置力的臨界值,當超過時這個關節就會執行選擇的Break Action 。預設值為Infinity ,表示不執行Break Action 。 |
|
Break Torque | 設置扭矩的臨界值,當超過時這個關節就會執行選擇的Break Action 。預設值為Infinity ,表示不執行Break Action 。 |
Damping Ratio(阻尼比
):描述系統在受到擾動後振盪及衰減的情形。阻尼比越大,物件受力振盪後越快恢復原狀。
- 無阻尼:= 0 , 對應沒有阻尼的簡諧運動。
- 欠阻尼:< 1 , 指數遞減且振盪
- 過阻尼:> 1 , 沒有振盪的指數遞減
- 臨界阻尼:= 1 , 介於過阻尼及欠阻尼之間,是許多工程應用想要的結果
- https://zh.wikipedia.org/zh-tw/%E9%98%BB%E5%B0%BC%E6%AF%94
Reference:https://docs.unity3d.com/Manual/class-WheelJoint2D.html