【Unity入門】シューティングゲームをBolt化してみよう(4/6)

ミサイルに衝突判定を付ける

Posted by 51n1 on 7 Dec, 2020

もくじ

  1. ロケットの左右移動
  2. ミサイルの発射
  3. 障害物の発生と移動
  4. ミサイルに衝突判定を付ける
  5. スコアを更新する
  6. ゲームオーバ処理

ミサイルに衝突判定を付ける

落下する障害物とミサイルの当たり判定を付ける。BulletControllerマクロに当たり判定を追加する。C#スクリプトと同様にOn Trigger Enter 2Dユニットを使う。チュートリアルでは特に当たり判定時にゲームオブジェクトのタグチェック等していないのでとてもシンプルである。

BulletControllerマクロ・Check Collision

次に爆発エフェクトを追加する。エフェクトはチュートリアルに従いAsset StoreからフリーのAssetを手に入れた。Assetのインストールは以前と少し手順が変わっているので注意。Unity 2019からはAsset Storeで取得したAssetはPackage Managerからダウンロードとインポートを行う。

この爆発エフェクトはParticle Systemである。Particle Systemを生成する処理を先ほど作成したBulletControllerマクロのOn Trigger Enter 2Dのイベントの後に追加する。ただParticle Systemのゲームオブジェクトを追加しただけだと爆発した後にシーン上に残ってしまうので一定時間後に破棄されるようDestroyを追加しておいた。チュートリアルでは特にDestroyの処理は入っていない。

BulletControllerマクロ・Explosion Effect

注意すべきなのは、ミサイルのBulletControllerマクロに爆発エフェクトの生成処理を入れているが、衝突時にミサイルが破棄されてしまうとこのマクロ自体も破棄されるのでタイミングによってはエフェクトが発生しない可能性もある点である。仕様上、イベント発生時の処理が完了されるまでマクロは破棄されないと思うのだが、安全をとるならGameControllerなどを作ってそこでイベント管理する方が良いかもしれない。

ここまでのチュートリアル進捗状況(4/6)