在遊戲製作過程中,遊戲對象要根據遊戲的需要進行物理屬性的交互。
因此,Unity 3D 的物理組件爲遊戲開發者提供了碰撞體組件。碰撞體是物理組件的一類,它與剛體一起促使碰撞發生。
碰撞體是簡單形狀,如方塊、球形或者膠囊形,在 Unity 3D 中每當一個 GameObjects 被創建時,它會自動分配一個合適的碰撞器。
一個立方體會得到一個 Box Collider(立方體碰撞體),一個球體會得到一個 Sphere Collider(球體碰撞體),一個膠囊體會得到一個 Capsule Collider(膠囊體碰撞體)等。
添加碰撞體
在 Unity 3D 的物理組件使用過程中,碰撞體需要與剛體一起添加到遊戲對象上才能觸發碰撞。
值得注意的是,剛體一定要綁定在被碰撞的對象上才能產生碰撞效果,而碰撞體則不一定要綁定剛體。
碰撞體的添加方法是:首先選中游戲對象,執行菜單欄中的 Component→Physics 命令,此時可以爲遊戲對象添加不同類型的碰撞體,如下圖所示。
碰撞體選項設置
Unity 3D 爲遊戲開發者提供了多種類型的碰撞體資源,如下圖所示。當遊戲對象中的 Rigidbody 碰撞體組件被添加後,其屬性面板中會顯示相應的屬性設置選項,每種碰撞體的資源類型稍有不同,具體如下。
1) Box Collider
Box Collider 是最基本的碰撞體,Box Collider 是一個立方體外形的基本碰撞體。
一般遊戲對象往往具有 Box Collider 屬性,如牆壁、門、牆以及平臺等,也可以用於布娃娃的角色軀幹或者汽車等交通工具的外殼,當然最適合用在盒子或是箱子上。
下圖所示是 Box Collider,遊戲對象一旦添加了 Box Collider 屬性,則在 Inspector 面板中就會出現對應的 Box Collider 屬性參數設置,具體參數如下表所示。
參 數 | 含 義 | 功 能 |
---|---|---|
Is Trigger | 觸發器 | 勾選該項,則該碰撞體可用於觸發事件,並將被物理引擎所忽略 |
Material | 材質 | 爲碰撞體設置不同類型的材質 |
Center | 中心 | 碰撞體在對象局部座標中的位置 |
Size | 大小 | 碰撞體在X、Y、Z方向上的大小 |
如果 Is Trigger 選項被勾選,該對象一旦發生碰撞動作,則會產生 3 個碰撞信息併發送給腳本參數,分別是 OnTriggerEnter、OnTriggerExit、OnTriggerStay。
Physics Material 定義了物理材質,包括冰、金屬、塑料、木頭等。
2) Sphere Collider
Sphere Collider 是球體形狀的碰撞體,如下圖所示。
Sphere Collider 是一個基於球體的基本碰撞體,Sphere Collider 的三維大小可以按同一比例調節,但不能單獨調節某個座標軸方向的大小,具體參數如下表所示。
當遊戲對象的物理形狀是球體時,則使用球體碰撞體,如落石、乒乓球等遊戲對象。
參 數 | 含 義 | 功 能 |
---|---|---|
Is Trigger | 觸發器 | 勾選該項,則該碰撞體可用於觸發事件,並將被物理引擎所忽略 |
Material | 材質 | 用於爲碰撞體設置不同的材質 |
Center | 中心 | 設置碰撞體在對象局部座標中的位置 |
Radius | 半徑 | 設置球形碰撞體的大小 |
3) Capsule Collider
Capsule Collider 由一個圓柱體盒兩個半球組合而成,Capsule Collider 的半徑和高度都可以單獨調節,可用在角色控制器或與其他不規則形狀的碰撞結合來使用。
通常添加至 Character 或 NPC 等對象的碰撞屬性,如下圖所示,具體參數如下表所示。
選項英文名稱 | 選項中文名稱 | 功能詳解 |
---|---|---|
Is Trigger | 觸發器 | 勾選該項,則該碰撞體可用於觸發事件,並將被物理引擎所忽略 |
Material | 材質 | 用於爲碰撞體設置不同的材質 |
Center | 中心 | 設置碰撞體在對象局部座標中的位置 |
Radius | 半徑 | 設置碰撞體的大小 |
Height | 局度 | 控制碰撞體中圓柱的高度 |
Direction | 方向 | 設置在對象的局部座標中膠囊體的縱向所對應的座標軸,默認是Y軸 |
4) Mesh Collider
Mesh Collider(網格碰撞體)根據 Mesh 形狀產生碰撞體,比起 Box Collider、Sphere Collider 和 Capsule Collider,Mesh Collider 更加精確,但會佔用更多的系統資源。
專門用於複雜網格所生成的模型,如下圖所示,具體參數如下表所示。
參 數 | 含 義 | 功 能 |
---|---|---|
Convex | 凸起 | 勾選該項,則Mesh Collider將會與其他的Mesh Collider發生碰撞 |
Material | 材質 | 用於爲碰撞體設置不同的材質 |
Mesh | 網格 | 獲取遊戲對象的網格並將其作爲碰撞體 |
5) Wheel Collider
Wheel Collider(車輪碰撞體)是一種針對地面車輛的特殊碰撞體,自帶碰撞偵測、輪胎物理現象和輪胎模型,專門用於處理輪胎,如下圖所示,具體參數如下表所示。
參 數 | 含 義 | 功 能 |
---|---|---|
Mass | 質量 | 用於設置 Wheel Collider 的質量 |
Radius | 半徑 | 用於設置碰撞體的半徑大小 |
Wheel Damping Rate | 車輪減震率 | 用於設置碰撞體的減震率 |
Suspension Distance | 懸掛距離 | 該項用於設置碰撞體懸掛的最大伸長距離,按照局部座標來計算, 懸掛總是通過其局部座標的 Y 軸延伸向下 |
Center | 中心 | 用於設置碰撞體在對象局部座標的中心 |
Suspension Spring | 懸掛彈簧 | 用於設置碰撞體通過添加彈簧和阻尼外力使得懸掛達到目標位置 |
Forward Friction | 向前摩擦力 | 當輪胎向前滾動時的摩擦力屬性 |
Sideways Friction | 側向摩擦力 | 當輪胎側向滾動時的摩擦力屬性 |