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をコピーしました