Unity 2D プレイヤーが通れない障害物を配置してコースを作る手順

2024 年 2 月 9 日から行われたほぼ一日でゲームを作るゲームジャム第43回あほげー」に参加しました。
無料でゲームも作れる Unity を用いて、そのゲームジャムで作成したゲームの主要な部分について機能ごとに作り方を紹介します。

4回目(全5回)の今回は、Rigidbody2DCollider2D 派生のコンポーネントを使うことで衝突判定を設定して、障害物となるゲームオブジェクト・プレハブを作成します。
それらを複数配置することでコースを作り、その中をプレイヤーキャラが移動できるようになります。

※ Unity のバージョンは 2022.3.19f1、 Unity Hub のバージョンは 3.7.0 です。
※ 説明の画像には「いらすとや」様の画像が含まれています。

前回の記事

前回は、無料でゲームも作れる Unity で、シーンに画像を表示するゲームオブジェクトを作成・配置して、矢印キーの入力に応じて加速して移動するスクリプトを割り当てました。

障害物の作成

いらすとや」様の「シャッターが閉じたお店のイラスト」を Project ウィンドウから Scene ビューにドラッグ&ドロップして、その画像を表示する機能を持ったゲームオブジェクトをシーンに作成・配置します。
ゲームオブジェクトの名前は「お店A」に変更しました。

Unity ahoge43 お店の画像をシーンにD&Dしてゲームオブジェクトを作成します..

お店A ゲームオブジェクトを選択して、 Inspector ウィンドウで Add Component ボタンを押して Collider2D 派生のBoxCollider2D コンポーネントを追加します。

Unity ahoge43 お店1ゲームオブジェクトにBoxCollider2Dコンポーネントを追加します...

プレイヤーキャラが障害物とぶつかるようにする

2つのゲームオブジェクト間での衝突に必要なコンポーネントの条件は以下です。

  • どちらか一方または両方が Rigidbody2D コンポーネントを持っている
  • 両方Collider2D 派生のコンポーネントを持っている

以前のプレイヤーキャラを慣性を持って動かす実装をした際に、Rigidbody2D コンポーネントを追加しました。
そして、前の章では「お店A」ゲームオブジェクトBoxCollider2D コンポーネントを追加しました。

あとはプレイヤーキャラにも Collider2D 派生のコンポーネントを追加すれば衝突して、シーンに配置した「お店A」ゲームオブジェクトの当たり判定の領域を、プレイヤーキャラは通れなくなります。

Player ゲームオブジェクトを選択して Inspector ウィンドウで Add Component ボタンを押して、カプセル型のコライダー CapsuleCollider2D コンポーネントを追加しました。
すこし当たり判定の領域が大きかったので、 CapsuleCollider2D コンポーネントの Edit Collider トグルボタンを押した後、 Scene ビューに表示された緑色の四角をドラッグしてカプセルの大きさを調整しました。

Unity ahoge43 PlayerゲームオブジェクトにCapsuleCollider2Dコンポーネントを追加します.Editトグルボタンを押すとSceneビューで範囲を調節できます...

衝突判定のテスト

Unity エディタの再生ボタンを押してから矢印キーで「お店A」の方に移動すると、衝突判定が行われて通れないことが確認できました。
これで、「お店A」ゲームオブジェクトをプレイヤーが通ることのできない障害物として利用できます。

障害物のプレハブ化

障害物となる画像に毎回 BoxCollider2D をつけたり、当たり判定の領域を調整するのは時間がかかりミスも発生しやすくなります。

作成した「お店A」などの障害物のゲームオブジェクトProject ウィンドウの任意のフォルダにドラッグ&ドロップしてプレハブを作成しましょう。

Unity ahoge43 お店Aゲームオブジェクトを Project ウィンドウのフォルダにD&Dしてプレハブを作成します....

プレハブScene ビューにドラッグ&ドロップすることで、そっくりなゲームオブジェクトを簡単にたくさん作成・配置できます。

Unity ahoge43 お店AプレハブをSceneビューにドラッグ&ドロップして同じゲームオブジェクトを複数配置します(後でプレハブ変更で一括変更もできます)...

ゲームオブジェクトをコピーしても同様のことが行えますが、プレハブを利用するとそのプレハブから作られたゲームオブジェクト(プレハブインスタンス)をプレハブを修正することで一括修正が可能です。
複製とプレハブインスタンスの違いについては以下の記事を参照してください。

いろんな障害物を配置した後のテスト

いらすとや」様の「1階建て一軒家」「駅・駅舎のイラスト」「お店の建物のイラスト」「シャッターが閉じたお店のイラスト」「夜のビル街・オフィス街のイラスト」の画像を使って先ほどと同様に障害物を作成しました。

それらをプレハブ化して複数配置することでゲームのコースができました。

まとめ

今回は、無料でゲームも作れる Unity で、Rigidbody2DCollider2D 派生のコンポーネントを使うことで衝突判定を設定して、障害物となるゲームオブジェクト・プレハブを作成しました。
それらを複数配置することでコースを作り、その中をプレイヤーキャラが移動できるようになりました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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