こんにちは、パパコーダーです!
第10回では、このゲームのもう一つの核となる
「ボールに当たったらゲームオーバー!」
という見た目の演出を作っていきます。
※当たり判定そのものは第7回で作成済みです
Scratch 版では、主人公がボールに当たったときに
「ゲームオーバー」メッセージ が送られます(これは第7回までで作りました)。
第10回では、そのメッセージを受け取って
- 画面に「GAME OVER」の絵を表示する
- 残り時間(変数「あと」)の表示を消す
という、「負けたときの見た目」を Scratch のプログラムに合わせて FUnity で再現します。
🎮 ゲームオーバー判定を作ろう(ボールに当たったらアウト!)
🎮 1. ルールを整理しよう
ここまでで、ゲームの状態はこんな感じです。
- 主人公がボールに当たると「ゲームオーバー」を送る(第7回)
- 変数「あと」が 60 から 0 までカウントダウンし、0 になったら「クリア」を送る(第9回)
第10回では、Scratch のスクリプトと同じように、
- ゲーム開始時:GAME OVER 画像は非表示、残り時間「あと」は表示
- 「ゲームオーバー」を受け取ったとき:残り時間「あと」を隠して、GAME OVER 画像を表示
という見た目の切り替えを、FUnity の Actor と UI で作っていきます。
🖼 2. GAME OVER 用 Actor を作ろう
まずは「GAME OVER」の文字や画像を表示する専用 Actor を作ります。
Scratch でいうと、GAME OVER のスプライトにあたる部分です。
▼ GameOverActor の作成
- FUnity → Create → FUnityActorData を選択
- 名前を GameOverActor にする
- Sprites に「GAME OVER」と書かれた画像を設定する(シンプルな文字画像でOK)
- FUnityProjectData の Actors に GameOverActor を追加する

次に、Script Graph を開いて、Scratch のブロックと同じ動きを作ります。
▼ Scratch のスクリプトとの対応
Scratch の GAME OVER スプライトは、次のようなブロックになっています。




FUnity では、これと同じ意味の処理を Script Graph で組みます。
- 緑の旗を押したとき … ゲーム開始時に呼ばれるイベント
- 隠す … GameOverActor を非表示にする
- ゲームオーバーを受け取ったとき … 「ゲームオーバー」メッセージを受け取ったときのイベント(『ゲームオーバー』の文字(全角/半角、空白、濁点)まで完全一致)
- 表示する … GameOverActor を表示する
これで、ゲーム開始時は見えなくて、ゲームオーバー時だけドーンと出てくる GAME OVER 画像が完成します。
⌛ 3. 残り時間「あと」の表示・非表示を切り替える
Scratch では、GAME OVER スプライトのスクリプトの中で、


という形で、残り時間「あと」の表示を切り替えています。
FUnity では、「あと」の値を表示している UI(Label)を
GameOverActor から操作するイメージで再現してみましょう。
📣 4. 「クリア」との関係(おさらい)
Scratch の画像には、もうひとつ次のようなブロックも写っています。


第9回では、FUnity の GameManager Actor で
「あと」が 0 になったら「クリア」を送る処理を実装しました。
今回、第10回ではその部分は触らず、
「ゲームオーバー」を受け取ったときの見た目の変更に集中しています。
つまり、
- 「クリア」メッセージ → ClearActor が表示(第9回)
- 「ゲームオーバー」メッセージ → GameOverActor が表示&残り時間を隠す(第10回)
という役割分担になっています。
🧪 5. 動作確認しよう!
Unity で 再生ボタン(▶) を押して、次のようになっているか確認します。
- ゲーム開始時:GameOverActor は表示されていない
- ゲーム開始時:残り時間「あと」が表示されている(UI を作っている場合)
- 主人公がボールに当たると「ゲームオーバー」メッセージが送られる(第7回)
- 「ゲームオーバー」を受け取ると、GameOverActor が表示される
- 同時に、残り時間「あと」の表示が消える
この流れになっていれば、Scratch のゲームオーバー演出とほぼ同じものが FUnity でも再現できています。
もし GameOverActor が出てこなかったり、残り時間が消えない場合は、
- GameOverActor の Script Graph で ゲームオーバーを受け取ったとき が正しく設定されているか
- メッセージ名が「ゲームオーバー」と完全に一致しているか(全角・半角に注意)
- UI ラベルの参照(timer-label など)が正しくつながっているか
をチェックしてみてください。
🌟 今回できたこと
- GAME OVER 用の Actor(GameOverActor)を作った
- ゲーム開始時に GameOverActor を隠す処理を実装した
- 「ゲームオーバー」メッセージを受け取ったときに GameOverActor を表示するようにした
- 残り時間「あと」の表示/非表示をメッセージに合わせて切り替えられるようにした
- クリア時とゲームオーバー時で、画面の見た目がはっきり分かれるようになった
これでゲームの「勝ち」と「負け」の両方の画面演出がそろいました。
プレイヤーにとっても分かりやすいゲームになってきましたね!
🔜 次回:第11回「unityroomの紹介」
次回は、日本最大級の個人ゲーム投稿サイト「unityroom」を紹介します。
FUnity で作ったゲームを実際に公開して、遊んでもらえるようにしていきましょう!


コメント