Unityではオブジェクト同士の当たり判定の範囲をコライダー(Collider)を使って実現しています。
もし、オブジェクトにコライダーが設定されていない場合(具体的にはColliderコンポ―ネットが追加されていない場合)、物体は当たり判定がなされずにすり抜けます。
コライダーが設定されていない場合
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_non_collider.gif)
アセットストアで提供されているアセットには最初からコライダーなどがついている場合もありますが、中には自分でコライダーを設定して利用するものも多数存在します。
今回はあえてコライダーがついていない無料アセットLow Poly Fruit Pickupsを使って、オブジェクトにコライダーをつける方法を解説します。
プロジェクトの準備
プロジェクトを新規作成し、Hierarchyから + > 3D Object > Plane をシーンに追加してください。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider1.jpg)
アセットストアから Low Poly Fruit Pickups を検索してプロジェクトにインポートします。
インポートするとLow Poly Fruitsという名称のフォルダが作成されます。
Low Poly FruitsフォルダにあるPrefabsフォルダを開いて好きなフルーツをシーン上にドラッグ&ドロップしてください。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider2.jpg)
シーンの準備は以上です。
コライダーがないとすり抜ける
試しにシーンに配置したフルーツにRigidbodyを追加して落下させてみます。
フルーツを選択し、InspectorウインドウのAdd Componentボタンをクリック。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider3.jpg)
Physics > Rigidbody を追加します。
![](https://dianxnao.com/wp-content/uploads/2021/07/unity_move_forward13.jpg)
一度実行確認してみます。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_non_collider.gif)
うまくPlaneをすり抜けたでしょうか?(笑)
これはフルーツにColliderが設定されていないからです。
ちなみにデフォルトのオブジェクトである 3D Object の Cubeは最初からColliderが設定されているので同じようにRigidbodyを追加すればきちんとPlaneにぶつかって止まります。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_cube_rigidbody.gif)
CubeのInspectorウインドウを見てみるとBox Colliderという名称のコライダーが設定されていることが分かります。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider4.jpg)
コライダーを設定する
今回シーンに配置したフルーツにもColliderを設定して落下させたときPlaneで止まるようにします。
具体的には、Rigidbodyの時と同じように、コライダー用のコンポーネントを追加する形になります。
まずはフルーツを選択してAdd Componentボタンをクリック。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider3.jpg)
Physics > Sphere Collider を追加します。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_sphere_collider.jpg)
Sphere Colliderが追加され、オブジェクトの周囲に緑色の枠線が表示されています。
この緑色の枠線が当たり判定の範囲となるコライダーの範囲です。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider6.jpg)
この状態で実行すると、Planeで落下が止まることが確認できます。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_sphere_collider_rigidbody.gif)
コライダーの範囲調整
今回は、フルーツとコライダーの範囲がほぼ一致していたので問題はありませんでしたが、コライダー範囲は微調整が可能です。
調整には2通りの方法があります。
マウス操作でコライダー範囲を微調整
エディットボタンをクリックすると、マウス操作で緑色の枠線をドラッグ&ドロップ操作により直感的にコライダー範囲を調整できます。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider7.jpg)
調整イメージ
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_sphere_collider_edit1.gif)
数値入力によりコライダー範囲を微調整
Center項目とRadius項目に数値を入力することでもコライダー範囲を調整できます。
より細かい調整を行いたい場合は、こちらが適しています。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider7-1.jpg)
CenterのX, Y, Zは、コライダーの中心座標です。
Radiusは半径です。コライダーを追加したオブジェクトにより初期値は変わってきます。
調整イメージ
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_sphere_collider_edit2.gif)
コライダーの範囲を元に戻したい時は?
コライダーの範囲を最初の状態に戻したくなる時もあります。
その際は、Inspectorウインドウのコライダー部分の右上をクリックして、Resetを選択すれば元に戻ります。
![](https://dianxnao.com/wp-content/uploads/2022/07/unity_collider8.jpg)
コライダーの種類
実はコライダーには、今回紹介したSphere Colliderのほかに、Box Collider、Capsule Colliderなどがあります。(3Dの場合)
ちなみに3D ObjectのCubeに最初から設定されていたのは、Box Colliderでした。
オブジェクトの形状に合わせてコライダーの形状を選ぶようにすればいいでしょう。
実はMesh Colliderというオブジェクトの形状に沿ったコライダーも存在します。
ただしMesh Colliderは、ゲームの処理が重くなるため、使いどころは考える必要があります。
大抵はSphere ColliderやBox Collider、3DキャラならCapsule Colliderで十分間に合います。
以上、Unity:当たり判定範囲コライダーのつけ方でした。
参考
![](https://unity3d.com/files/images/ogimg.jpg)
コメント