お知らせ:「くろくまそふと」は新アドレス(kurokumasoft.com)に移転しました。お手数ですがブックマーク等の変更をお願いいたします。

【Unity】2Dゲームで通路を作るときに便利な「Composite Collider 2D」

Composite Collider 2Dによるコライダーの生成結果 ゲーム制作メモ

Unityで2Dゲーム用の通路を作るとき、「Composite Collider 2D」を使うと楽に作れるということを覚えたのでメモしておきます。

スポンサーリンク

次のような通路を作りたいとき、どうする?

Unityで次のような2Dゲーム用の通路を作るとします。

2Dゲームでよくある通路

2Dゲームでは非常によくあるタイプの通路だと思いますが、どうやって作れば良いでしょうか?

すぐに思いつく方法:壁で囲って通路を作る

まず最初に思いつくのは「壁オブジェクトで囲うようにして通路を作る」方法です。まずBox Colliderをもつ壁オブジェクトを作り、それを下図のように配置していくやり方ですね。

壁オブジェクトで囲う方法

ただしこの方法の問題点は通路を作るのが面倒くさいということ。上記の例くらい単純な通路ならまだマシですが、複雑な通路を作ろうとすると細かな壁オブジェクトを多数配置する必要があって非常に面倒です。

「Composite Collider 2D」を使ってもっと楽に通路を作る

そこでググって知ったのが「Composite Collider 2D」というコンポーネントを使う方法です。このコンポーネントについての詳細は「Composite Collider 2D – Unity マニュアル」のほうを参照してほしいのですが、簡単に言うと「コライダーを合成できるコンポーネント」です。

それでこのコンポーネントには「合成したコライダーを囲うようなコライダーを生成できる」という、通路を作るのにぴったりな機能があります。この機能を使えば通路をかなり楽に作ることができます。

作り方は簡単で、次のような手順で作ることができます。

  1. まず通路の親となる空のオブジェクトを用意する。これにComposite Collider 2Dをアタッチし(Rigidbody2Dも一緒にアタッチされる)、下の図のように設定する(エッジの半径は任意に調整すること)。
    Composite Collider 2Dの設定
  2. 次に適当なコライダーを持つ通路用のオブジェクトを用意し、1.の子オブジェクトとして配置する。
  3. そうすると下の図のように子のコライダーを囲うようなコライダーが生成される。
    Composite Collider 2Dによるコライダーの生成結果

これなら直接通路の形のコライダーを得られるので最初の方法よりもかなり楽です。ぜひ試してみてください。


参考ページ:【Unity】複数のColliderを結合するComposite Collider 2Dを使って少し遊ぶ – テラシュールブログ