Unity:当たり判定範囲コライダーのつけ方

Unity

Unityではオブジェクト同士の当たり判定の範囲コライダー(Collider)を使って実現しています。

もし、オブジェクトにコライダーが設定されていない場合(具体的にはColliderコンポ―ネットが追加されていない場合)、物体は当たり判定がなされずにすり抜けます。

コライダーが設定されていない場合

アセットストアで提供されているアセットには最初からコライダーなどがついている場合もありますが、中には自分でコライダーを設定して利用するものも多数存在します。

今回はあえてコライダーがついていない無料アセットLow Poly Fruit Pickupsを使って、オブジェクトにコライダーをつける方法を解説します。

プロジェクトの準備

プロジェクトを新規作成し、Hierarchyから + > 3D Object > Plane をシーンに追加してください。

アセットストアから Low Poly Fruit Pickups を検索してプロジェクトにインポートします。
インポートするとLow Poly Fruitsという名称のフォルダが作成されます。

Low Poly FruitsフォルダにあるPrefabsフォルダを開いて好きなフルーツをシーン上にドラッグ&ドロップしてください。

シーンの準備は以上です。

コライダーがないとすり抜ける

試しにシーンに配置したフルーツにRigidbodyを追加して落下させてみます。

フルーツを選択し、InspectorウインドウのAdd Componentボタンをクリック。

Physics > Rigidbody を追加します。

一度実行確認してみます。

うまくPlaneをすり抜けたでしょうか?(笑)
これはフルーツにColliderが設定されていないからです。

ちなみにデフォルトのオブジェクトである 3D Object の Cubeは最初からColliderが設定されているので同じようにRigidbodyを追加すればきちんとPlaneにぶつかって止まります。

CubeのInspectorウインドウを見てみるとBox Colliderという名称のコライダーが設定されていることが分かります。

コライダーを設定する

今回シーンに配置したフルーツにもColliderを設定して落下させたときPlaneで止まるようにします。

具体的には、Rigidbodyの時と同じように、コライダー用のコンポーネントを追加する形になります。

まずはフルーツを選択してAdd Componentボタンをクリック。

Physics > Sphere Collider を追加します。

Sphere Colliderが追加され、オブジェクトの周囲に緑色の枠線が表示されています。
この緑色の枠線が当たり判定の範囲となるコライダーの範囲です。

この状態で実行すると、Planeで落下が止まることが確認できます。

コライダーの範囲調整

今回は、フルーツとコライダーの範囲がほぼ一致していたので問題はありませんでしたが、コライダー範囲は微調整が可能です。

調整には2通りの方法があります。

マウス操作でコライダー範囲を微調整

エディットボタンをクリックすると、マウス操作で緑色の枠線をドラッグ&ドロップ操作により直感的にコライダー範囲を調整できます。

調整イメージ

数値入力によりコライダー範囲を微調整

Center項目とRadius項目に数値を入力することでもコライダー範囲を調整できます。
より細かい調整を行いたい場合は、こちらが適しています。

CenterのX, Y, Zは、コライダーの中心座標です。
Radiusは半径です。コライダーを追加したオブジェクトにより初期値は変わってきます。

調整イメージ

コライダーの範囲を元に戻したい時は?

コライダーの範囲を最初の状態に戻したくなる時もあります。

その際は、Inspectorウインドウのコライダー部分の右上をクリックして、Resetを選択すれば元に戻ります。

コライダーの種類

実はコライダーには、今回紹介したSphere Colliderのほかに、Box ColliderCapsule Colliderなどがあります。(3Dの場合)

ちなみに3D ObjectのCubeに最初から設定されていたのは、Box Colliderでした。

オブジェクトの形状に合わせてコライダーの形状を選ぶようにすればいいでしょう。

実はMesh Colliderというオブジェクトの形状に沿ったコライダーも存在します。
ただしMesh Colliderは、ゲームの処理が重くなるため、使いどころは考える必要があります。
大抵はSphere ColliderBox Collider、3DキャラならCapsule Colliderで十分間に合います。

以上、Unity:当たり判定範囲コライダーのつけ方でした。

参考

コライダー - Unity マニュアル
Collider (コライダー) コンポーネントは、物理衝突のためのゲームオブジェクトの形状を定義します。コライダーは目...

コメント

タイトルとURLをコピーしました