はじめに
この記事ではUnityの「Collider」を使った衝突判定を紹介します。
「Collider」について
Colliderとは、オブジェクトに「当たり判定を付与する」コンポーネントのことです。
例えば、キャラ同士がぶつかったときや、爆発に巻き込まれたときに処理を実行できます。
GameObject > 3D Object > Cube でCubeを作成し、コンポーネントのMesh Rendererのチェックを外すと、緑色のフレームが確認できます。これがColliderです。
Colliderの種類まとめ
Unityには様々な形状のColliderが用意されています。
Box Collider
立方体のコライダーです。
扱いやすいですが、階段などの段差があると引っ掛かることがあります。
2D用の Box Collider 2Dコンポ―ネントもあります。
Sphere Collider
球体のコライダーです。
複雑な形をしたオブジェクトでも、球体で大雑把に囲めば軽量化できます。
2D用のCircle Collider 2Dもあります。
Capsule Collider
カプセル状のコライダーです。
2足歩行するキャラクターや、銃弾など、細長いオブジェクトに適しています。
また、2D用のCapsule Collider 2Dもあります。
Mesh Collider
メッシュコライダーは、オブジェクトの形に沿った細かい判定が行えるコライダーです。
シビアな当たり判定が必要なときに使用します。
ただし、描画に必要な負荷が大きいので、多用は避けてください。
また。2DではPolygon Collider 2Dがあります。
こちらも自由な形状でコライダーを生成することができます。
https://alchem.itch.io/unity-collider2d-optimization
Wheel Collider
Wheel Collider は車のタイヤなどに利用します。
ホイールの物理特性やスリップベースのタイヤ摩擦などの要素が組み込まれています。
https://docs.unity3d.com/ja/current/Manual/class-WheelCollider.html
Terrain Collider
テラインコライダーは、地形の生成に使うTerrainのコライダーです。
こちらもMesh Collider と同様、細かい部分まで表現できるので処理に負担がかかります。
World Particle Collider
炎や光の玉など、パーティクルに当たり判定を付与できます。
Spatial Mapping Collider
Spatial Mapping Collider では、複合現実(MR)などで物体の表面にColliderを付与できます。
https://docs.unity3d.com/560/Documentation/Manual/windowsholographic-sm-component.html
Edge Collider 2D
Edge Collider 2D コンポーネントは 関節の表現なので使用します。
コライダーの形状は自由に変形できるので、Mesh Colliderのように高い精度でフィットできます。
また、他のコライダーとは違い、オブジェクトを完全に囲む必要はなく、直線やL字などでも利用可能です。
Composite Collider 2D
Composite Collider 2Dでは衝突したコライダー同士を合体させることができます。
Tilemap Collider 2D
2Dゲームのマップのタイルにコライダーを付与できます。