物理中最基礎的表現就是碰撞,像是這次的示範是左邊的方塊撞擊右邊的方塊並彈開,這就是一種碰撞。在Unity裡想要實現這種碰撞的表現要有兩種東西,Rigidbody 及Collider 這兩種Component。
Rigidbody 剛體
要讓物件有重力及碰撞反應需要的就是剛體,剛體可以在選取物件後在inspect標籤或上方工具列的Component - Physics 裡加入。一般情況下不可改變大小。
加入剛體後可以看到有很多的參數。
Mass:物件的重量
Drag:物件移動時的阻力
Angular Drag:物件轉動時的阻力
Use Gravity:是否使用重力,如果打勾則物件會因重力而下墜
Is Kinematic:讓物件可受力的影響,但不受重力影響時使用
Interpolate:幫助物件平穩的移動,如果物件的物理運動有抖動或不平穩的時候可以嘗試更改
Collision Detection:碰撞偵測的模式,設定成Continuous 會防止穿透靜態物件,Continuous Dynamic 會防止穿透設定成Continuous 及Continuous 的物件
Freeze Position 及 Rotation:能夠凍結物件的位置及旋轉
Collider 碰撞體
Unity 裡有很多種Collider 的形狀,差別就是碰撞體的面數不一樣,當然效能也會不同。Collider也可以在Component - Physics 裡加入物件,可以親自嘗試個別的差異。碰撞體的範圍會以綠線表示。
共通的參數
Edit Collider:可編輯Collider的大小及形狀
Is Trigger:讓物件可碰撞,關於這個會有另一篇介紹
Matirial:物件材質
比較特別的是Mesh Collider 這是根據物件的模型來生成的Collider ,用於需要更精準的碰撞時。