Unityでキャラクターに当たり判定を作るとき、オブジェクトごとにレイヤーを分けておくと便利です。
プレーヤーと敵キャラクターには当たり判定が有り、
プレーヤーと味方キャラクターは当たり判定を無くすといったことが簡単にできます。
そこで本記事では2D3D両方で使える、レイヤーで当たり判定の有無を管理する方法を紹介します!
レイヤーによる当たり判定の設定方法
下のような3色のボールを配置して、レイヤーによる当たり判定の変化を見ていきます。

新しいレイヤーを作ってオブジェクトにセットする
まずは新しいレイヤーを追加してあげましょう。
どのオブジェクトでもいいので、インスペクターを開きLayer:Defaultとなっているところをクリック。
Add Layerをクリックするとレイヤー管理画面が開きます。
空いている個所ならどこでもいいので、作りたいレイヤー名を入力しましょう。

セーブボタンなどはなく、入力した時点でレイヤーは追加されます。
レイヤー管理画面を閉じ、再びオブジェクトのLayerを開くと先ほどのレイヤーが追加されています。

当たり判定を管理したいオブジェクトそれぞれに別々のレイヤーを設定しましょう。



ここまで設定できたら一度プログラムを動かしてみます。
レイヤーを設定しただけではまだ、どのレイヤー同士も当たり判定がある状態です。
ここからレイヤー同士の当たり判定の有無を設定していきましょう。

レイヤーごとの当たり判定を設定する
レイヤーごとの当たり判定を設定するために、Layer Collision Matrixを設定します。
Edit→Project Settingsを開きます。

Project Settings内、Physicsの一番下にあるチェックボックスの表で、当たり判定を管理しています。

今はRed、Blue、Orangeが交わるボックスすべてにチェックが入っているので
すべてに当たり判定がある状態です。
試しにRedとBlueが交わる部分のチェックを外してからプログラムを動かしてみます。


このように赤と青の衝突判定だけ無くなり、すり抜けるようになりました。
つまりこの表のチェックを外した箇所の当たり判定が無くなるということになります。
同様にして、Red同士が交わる箇所のチェックを外せば
同じレイヤー同士の衝突を無くす、といった使い方もできます。


当たり判定に便利なおすすめアセット
リアルな当たり判定を実現するためにコライダーの設定は最も重要です。
ここではコライダーを設定するときに役立つ便利なアセットを紹介します。
Technie Collider Creator 2

コライダーを自動で設定することも、手動で編集することもできるコライダーの作成に特化したアセットです。
リアルな当たり判定のためには細かい部分までコライダーが設定されていることが大事になってきます。
このアセットは、自動作成では対応できないような複雑な形状のコライダーまで手動で作れるのが強みですね。
Concave Collider


Concaveとは凹面を意味し、名前の通り凹状の当たり判定を作る際に役立つアセットです。
画像のようにへこんでいるオブジェクトにも正確なコライダーを作ることができます。
くぼみの中にオブジェクトを入れる時など、正確な当たり判定が欲しい場合に非常に便利です。
レイヤーによる当たり判定管理まとめ
レイヤーによる当たり判定の設定は、以下の手順で行えます。
- 新しいレイヤーを作る
- レイヤーをオブジェクトにセットする
- Layer Collision Matrixで当たり判定を無くしたい箇所のチェックを外す
レイヤーを設定するだけで複数のキャラクターの当たり判定の管理が非常に楽になります。
アクションゲームを作るときなど、ぜひマスターしておきたいですね!



コメント