コライダーの形状
CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 13/63。
物理演算は、目に見えるメッシュを参照しません。オブジェクトのコライダーを使い、コライダーはずっと単純な形状にできます。Unityの基本的な3種類の形状で、ほとんどの用途をカバーできます。BoxCollider(size、center)は、木箱、壁、床、建物に適しています。SphereCollider(radius)はボールに適しています。判定コストが最も低い形状で、摩擦によって回転すると球体が転がります。CapsuleCollider(radius、height、direction)は両端が丸い円柱で、高さには両端の丸い部分も含まれます。
カプセルは、キャラクターに一般的に使われる形状です。丸みを帯びた底面は、小さな段差や床タイルの継ぎ目を滑らかに乗り越えます。こうした場所では、ボックスの角が引っかかることがあります。また、側面は角に引っかからず、かすめるように通り抜けます。Rigidbodyにカプセルを付けるとボトルのように倒れてしまうため、キャラクターのRigidbodyでは回転を固定し(rb.freezeRotation = true)、コードでキャラクター自体を回転させます。
各プリミティブには、それに対応するコライダーが付属します。CubeにはBoxCollider、SphereにはSphereCollider、CapsuleにはCapsuleColliderが付いています。Unityには円柱コライダーがないため、Cylinderプリミティブには両端が丸いCapsuleColliderが付きます。MeshColliderは、インポートしたモデル固有の三角形に沿った形状になります。動かない、細部まで作り込まれた背景には適していますが、判定には時間がかかります。また、動くRigidbodyに付ける場合は、Convexに設定する必要があります。複雑なオブジェクトを動かす場合は、メッシュ1つを使うよりも、子オブジェクトにいくつかの単純なコライダーを付けるほうが高速です。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。