Mesh Collider はメッシュのアセットからそのメッシュにもとづくコライダーを生成します。複雑なメッシュの場合、プリミティブを使用した衝突検出するよりも遥かに正確です。Convex がオンとなっている Mesh Collider は、他の Mesh Collider と衝突することができます。
プロパティー | 機能 |
---|---|
Is Trigger | オンにすると、コライダーはイベントのトリガーとなり、物理エンジンにより無視されます。 |
Material | 使用する 物理マテリアル への参照。物理マテリアルによりコライダーが他と衝突したとき、どのように相互作用するかが決定されます。 |
Mesh | 衝突判定に使用するメッシュ。 |
Convex | オンにした場合、MeshCollider は他の MeshCollider と衝突します。Convex オンの MeshCollider は三角形面数の上限が 255 に制限されています。 |
メッシュコライダーは、ゲームオブジェクトにアタッチされた メッシュ から、コライダーの形状を作成し、コライダーの位置とスケールを正しく設定するために、同じくアタッチされた Transform を読み込みます。この方法の利点は、コライダーの形状をオブジェクトの表示用メッシュの形状とまったく同じにできるため、より精密で正しい衝突判定ができる事です。しかし、その精密さは、プリミティブのコライダー(球、ボックス、カプセル)による衝突判定よりも、プロセッサのオーバーヘッドが高くなるので、メッシュコライダーは控えめに使った方がよいでしょう。
衝突メッシュは、バックフェースカリングを使用しています。オブジェクトが表示上バックフェースカリングされたメッシュと衝突した場合、物理的に衝突することもありません。
メッシュコライダーには、いくつかの制限があります。凸状ではないメッシュコライダーはリジッドボディがアタッチされていないゲームオブジェクト上でのみサポートされています。リジッドボディとメッシュコライダーを組み合わせて使いたいときは、プロパティーにある Convex にチェックを入れる必要があります。
Unity の5.0以前のバージョンには、メッシュと球での相互作用を改善するために、メッシュコライダー用の Smooth Sphere Collisions プロパティーがあります。このプロパティーは、物理エンジンによってスムーズな相互作用が標準的な挙動になる前のもので、現在では使われていません。また、オフにしても利点はありません。