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

ゲームオーバ処理

Posted by 51n1 on 7 Dec, 2020

もくじ

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

ゲームオーバ処理

チュートリアルではUIControllerスクリプトにGameOver関数を追加し、障害物が画面下端を超えたらゲームオーバとなるようRockControllerスクリプトからGameOver関数を呼び出している。

Boltではマクロの一部をメソッドという形で呼び出すということはできないようなので、ちょっと違う方法で実現する。BoltではC#の関数のような仕組みとしてスーパーユニットというモジュール型のマクロを作成することができるのだが、その場合、UIControllerマクロとは別ファイルで作成する必要がありメンテナンス性が悪いので、UIController内で完結できるような方法を考える。

Boltのカスタムイベントを使う。GameOverテキストはBoltのオブジェクト変数として定義しておいてStartイベント時にSetActiveをfalseにして非表示にする。障害物が画面下端を超えたらカスタムイベントを呼び出してGameOverテキストのSetActiveをtrueにして表示させる。

UIControllerマクロ・Game Over Text

RockControllerマクロにカスタムイベントをトリガーするユニットを追加する。ここではCanvasオブジェクトのUIControllerマクロに定義したGameOverという名前のカスタムイベントを呼び出すような形にしている。今回使っていないが、カスタムイベントのArgumentsには引数が追加できるようになっている。

RockControllerマクロ・Game Over Event

チュートリアルでは特にゲームオーバ後の処理とかないけど、ゲームオーバしたら、ゲームをリセットするとかの処理を入れても良いだろう。

ここまでのチュートリアル進捗状況(6/6)・ゲームオーバ処理

背景をスクロールする

背景スクロールはチュートリアルのC#スクリプトとほぼ同様に実装が可能である。

BackgroundControllerマクロ

チュートリアル用のゲームが複雑ではないこともあり、C#スクリプトは一切使用せずBoltのみで実装できると思う。ここまでの完成ビデオとなる。

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

以下、これまでに作成したBoltのマクロのスクリーンショット画像を参考までにまとめておく。

RocketControllerマクロ

BulletControllerマクロ

RockControllerマクロ

UIControllerマクロ

RockGeneratorマクロは「 障害物の発生と移動」を参照。