1. 程式人生 > >Unity3D 網格碰撞器Mesh Collider之間和原型碰撞器(Box Collider等)的碰撞檢測

Unity3D 網格碰撞器Mesh Collider之間和原型碰撞器(Box Collider等)的碰撞檢測

There are some limitations when using the Mesh Collider. Usually, two Mesh Colliders cannot collide with each other. All Mesh Colliders can collide with any primitive Collider. If your mesh is marked as Convex, then it can collide with other Mesh Colliders.
使用網格碰撞器有一些限制條件。通常,兩個網格碰撞器之間不會發生碰撞。所有的網格碰撞器可以和任何原型碰撞器碰撞。如果網格標記為凸起的(Convex),那麼就可以和其他網格碰撞器碰撞。

舉個例子,這是一張模型槍(Mesh Collider),一個模型人物,一個Cube(Box Collider)gameObject.

這裡寫圖片描述
首先我們要匯入模型的網格Mesh檔案,對於自定義的網格,我們需要在FBX檔案的模型這裡寫圖片描述]![這裡寫圖片描述中勾選Generate Colliders選項,然後即會自動在預支體或遊戲物體中生成一個Mesh Collider 元件,並添加了Mesh,若沒有生成元件,可自行匯入。
這個人物被添加了剛體元件(無動力學),但是她不會掉下去,細心的你會發現Plain其實也是一個網格碰撞器並且沒有勾選凸起(Convex),那麼我們應該在人物模型中勾選這個欄位,這裡寫圖片描述,所以我們得出的結論是兩個網格碰撞器實現的碰撞條件是在具有剛體的基礎上,至少一方需勾選convex。

槍與人的模型也是類似,也可以使用public void OnCollisionEnter(Collision collision) 來測試碰撞檢測.