Unity內置了NVIDIA的Physx物理引擎,Physx是目前使用最爲廣泛的物理引擎,被很多遊戲大作所採用,開發者可以通過物理引擎高效、逼真地模擬剛體碰撞、車輛駕駛、布料、重力等物理效果,使遊戲畫面更加真實而生動,下面就給大家介紹下Unity遊戲開發中物理引擎的使用。
##Rigidbody(剛體)
Rigidbody(剛體)能讓你的遊戲對象被物理引擎所控制,它能通過受到推力和扭力來實現真實的物理表現效果。所有遊戲對象必須包含剛體組件來實現重力、通過腳本施加力、或者與其他對象進行交互,這一切都通過NVIDIA的PhysX物理引擎來實現。
####屬性
Mass 質量,單位爲Kg,建議不要讓對象之間的質量差達到100倍以上
Drag 空氣阻力,爲0表示沒有阻力,infinity表示立即停止移動
Angular Drag 扭力的阻力,數值意義同上
Use Gravity 是否受重力影響
Is Kinematic 是否爲Kinematic剛體,如果啓用該參數,則對象不會被物理所控制,只能通過直接設置位置、旋轉和縮放來操作它。
Is Kinematic一般用來實現移動平臺,或者帶有HingeJoint的動畫剛體,在某些時候,主要是創建布娃娃效果的時候,你可能需要在動畫與物理控制之間進行切換。你可以將剛體設置爲Is Kinematic,當設置爲Kinematic模式,它將不再受到外力影響。這時你只能通過變換方式來操作對象,但是Kinematic剛體還會影響其他剛體,但他自己不會再受物理引擎控制。比如,連在Kinematic剛體上的Joints還會繼續影響連接的另一個非Kinematic剛體,同時也能夠給其他剛體產生碰撞力。
Interpolate 如果你的剛體運動時有抖動,嘗試一下修改這個參數,None表示沒有插值,Interpolate表示根據上一楨的位置來做平滑插值,Extra