今天來簡單介紹一下RigidBody:
Rigidbody 的作用:
Rigidbody 組件賦予遊戲物體物理屬性,使其能夠:
受重力影響:當 Use Gravity 勾選時,該物體會受重力作用。
反應力和碰撞:Rigidbody 允許遊戲物體根據力的作用產生運動,並與其他具有物理屬性的物體發生碰撞。
動態運動:可以通過script或其他方式來控制,例如使用 AddForce() 函數來推動物體。
控制物體運動:使用 velocity 和 angularVelocity 控制物體的線速度和角速度。
Rigidbody 的一些屬性:
Mass (質量):物體的質量
Drag (阻力):影響物體運動時的速度衰減
Angular Drag (角阻力):控制旋轉運動的阻力。用來減緩物體旋轉速度。
Use Gravity (使用重力):控制物體是否受到重力影響。如果不需要物體受重力影響,可以取消勾選。
Is Kinematic:當設置為 Kinematic 時,物體不會受到物理引擎的自動影響,而是完全由script控制,適合用來創建動畫或特殊行為。
Rigidbody 的模式
Rigidbody 具有三種運動模式,用來控制物體的物理行為:
Dynamic(動態):受物理引擎完整控制,包括碰撞、重力和其他物理效應。
Kinematic(運動學):不受物理引擎影響,由開發者通過script來控制其運動。
Static(靜態):物體不會運動,通常用於牆壁或地板等不會改變位置的物體。
一些實用的函數
Rigidbody.AddForce(Vector3 force):向 Rigidbody 施加力,讓物體移動。
Rigidbody.AddTorque(Vector3 torque):施加旋轉力矩,使物體旋轉。
Rigidbody.velocity:可以直接設置或獲取物體的當前速度。
Rigidbody.angularVelocity:設置或獲取物體的當前角速度。
tldr: rigidbody是讓物體可以在Unity受到力控制的一個屬性