初心者必見!現場レベルの「ゲーム制作講座PDF」を無料プレゼント中!▶

Unityでゲームオーバーを実装 | リトライと復帰

Unity ゲーム制作実践

『ライフがゼロになったのに、ただ止まるだけ』——そんな終わり方では、プレイヤーは次に何をすればいいか迷ってしまいます。

ゲームオーバー画面は、失敗を区切りとして受け止め、リトライかタイトル戻りかを選ばせる大事な場面です。
087のクリア演出と対になる「負け」の処理として設計しましょう。

この記事では、HP0や落下でのゲームオーバー判定、UI表示、シーン再読込によるリトライ、タイトル画面への復帰までを説明します。

  • HPが0になってもゲームが止まらず、操作できてしまう
  • ゲームオーバーUIの出し方が分からない
  • リトライとタイトル戻りのボタン処理がわからない

✨ この記事でわかること

  • HP0・落下などゲームオーバー条件の設計
  • ゲームオーバーUIパネルの表示と非表示
  • Time.timeScaleでゲームを一時停止する方法
  • リトライ(シーン再読込)の実装
  • 085タイトル画面へ戻る処理
  • 初心者でも理解できる解説

\プログラミング未経験でも大丈夫!まずは1本作り切ろう/

初心者が最初に選ぶならコレ

Unity ノンフィールドRPG
+スレスパ風JRPG講座

★★★★★ (Unity6対応)

Unity6対応・スマホ化対応の最新カリキュラム。「何から始めればいいかわからない」という初心者でも、ステップごとに手を動かすだけでRPGが完成します。

講座を見てみる \ゼロからでもスマホ対応RPGが作れる!/

憧れのアクションゲームに挑戦

Unity 2Dアクションゲーム
の作り方講座(ロックマン風)

★★★★★ (スマホ化・広告実装)

初心者でもロックマン風の横スクロールACTが作れる講座。7ステージ+ラスボスという本格構成で、スマホ化・広告実装まで対応。「自分のゲームをリリースしたい」夢を叶えます。

講座を見てみる \初心者でも本格ACTが完成する!/

3Dゲーム開発の入口はここ

ゼルダ風3Dアクションゲーム
の作り方講座

★★★★★ (スマホ化対応)

「3Dゲームって難しそう…」と感じている初心者向けの講座。全16回でゼルダ風3Dアクションがスマホ対応で作れるようになります。3D開発の基礎がしっかり身につきます。

講座を見てみる \初心者でも全16回で3Dゲームが完成!/

ゲームオーバー条件を決める

まず、どんなときにゲームオーバーにするかを決めます。
ジャンルによって条件は変わりますが、よく使われるパターンは次のとおりです。

条件 検知方法 向いているゲーム
HPが0 Health.Die内でGameOverを呼ぶ アクション・RPG
画面外に落下 プレイヤーのY座標が閾値以下 横スクロール・プラットフォーマー
制限時間切れ タイマーが0になったとき アクション・パズル
ライフ残数0 lifeCountを減らし0で発動 シューティング

複数条件がある場合は、GameOverManagerに集約し、どこからでもTriggerGameOverを呼べるようにすると整理しやすいです。

GameOverManagerの実装

ゲームオーバー時に時間を止め、UIを表示する処理を1か所にまとめます。

using UnityEngine;
using UnityEngine.SceneManagement;

public class GameOverManager : MonoBehaviour
{
  public static GameOverManager Instance { get; private set; }
  public GameObject gameOverPanel;
  bool isGameOver;

  void Awake => Instance = this;

  public void TriggerGameOver
  {
    if (isGameOver) return;
    isGameOver = true;
    Time.timeScale = 0f;
    if (gameOverPanel != null) gameOverPanel.SetActive(true);
  }

  public void OnRetry
  {
    Time.timeScale = 1f;
    SceneManager.LoadScene(SceneManager.GetActiveScene.name);
  }

  public void OnReturnTitle
  {
    Time.timeScale = 1f;
    SceneManager.LoadScene("Title");
  }
}

gameOverPanelは最初SetActive(false)にしておき、ゲームオーバー時だけ表示します。
Canvasの子に「GAME OVER」テキストとリトライ・タイトルボタンを置きます。

管理人
管理人

Time.timeScale = 0で止めると、敵の動きも弾も止まります。
演出だけ動かしたいときは、UI用に別のCanvasでunscaledTimeを使う方法もありますよ。

081のHPと接続する

081で作ったHealthコンポーネントのDie内で、プレイヤーならゲームオーバーを呼びます。

void Die
{
  if (gameObject.CompareTag("Player"))
    GameOverManager.Instance.TriggerGameOver;
  else
    Destroy(gameObject);
}

プレイヤーにPlayerタグを付けておくと、敵と区別できます。
タグの代わりにGetComponent<PlayerController>で判定してもよいです。

落下死亡の検知

横スクロールゲームでは、穴に落ちたときの処理が定番です。
プレイヤーのUpdate内でY座標を監視します。

void Update
{
  if (transform.position.y < -10f)
    GameOverManager.Instance.TriggerGameOver;
}

閾値-10はステージの大きさに合わせて調整します。
DeathZoneというTrigger付きの空オブジェクトを穴の下に置き、OnTriggerEnter2Dで検知する方法も確実です。

ゲームオーバー実装の手順
  • STEP1
    GameOverPanelを作成

    GAME OVER表示とボタン2つ、初期は非表示
  • STEP2
    GameOverManagerを配置

    TriggerGameOverでtimeScale=0、Panel表示
  • STEP3
    死亡条件と接続

    HP0・落下などからTriggerGameOverを呼ぶ
  • STEP4
    リトライボタン

    現シーンを再読込、timeScaleを1に戻す
  • STEP5
    タイトル戻りボタン

    085のTitleシーンへLoadScene

リトライとタイトル戻りのUI

ゲームオーバーパネルには、最低限次の2ボタンを置きます。

  • リトライ … 同じステージを最初から(OnRetry)
  • タイトルへ … 085のTitleシーンへ(OnReturnTitle)

リトライ時はTime.timeScale = 1fを忘れないでください。
0のままだと、再読込後もゲームが止まった状態になります。
シーン読み込み時にAwakeでTime.timeScale = 1fを設定しておくと安全です。

082のスコアをリセットする場合は、リトライ前にScoreManager.Instance.ResetScoreを呼びます。
ハイスコアは残し、今回の点数だけゼロにする設計が一般的です。

演出を足す場合

ゲームオーバーにもう一段の演出を付けたい場合の例です。

  • パネル表示前に0.5秒のディレイ(コルーチンで実装)
  • 画面を赤くフラッシュするImageのフェード
  • 専用のSEを再生(timeScale=0でもAudioSource.PlayOneShotは鳴る)

087のクリア演出と対にすると、勝ち負けどちらも「区切り」として感じられます。
まずはパネル表示だけ動かし、あとから演出を足す進め方がおすすめです。

つまずきやすいポイント

ゲームオーバー実装でよくある問題は次のとおりです。

  • リトライ後も止まったまま → timeScaleを1に戻しているか
  • 二重にゲームオーバー → isGameOverフラグでガード
  • ボタンが押せない → timeScale=0でもUIは動くが、EventSystemを確認
  • タイトルに戻れない → Build SettingsにTitleシーンが登録されているか

デバッグ用に、キー入力で強制ゲームオーバーする処理を一時的に入れると、死亡条件の調整が楽になります。

ライフ制(残機)を使うシューティングでは、被弾時にlifeCountを減らし、0になった瞬間にTriggerGameOverを呼びます。
残機表示用のUIと082のスコア表示を並べると、情報が揃った画面になります。

管理人
管理人

ゲームオーバーとクリア(087)が揃うと、ゲームに『始まりと終わり』ができます。
リトライが動いたら、ぜひ意図的に失敗して画面を確認してみてください。

記事を読んで「作ってみたい!」と思ったら!初心者でも1本完成できる講座で実力をつけよう

知識を読むだけで終わらせるのはもったいない。実際に手を動かしてゲームを1本完成させることで、理解が一気に深まります。プログラミング未経験からでも取り組める講座で、ゲーム開発の第一歩を踏み出しましょう。

Unity ノンフィールドRPG+スレスパ風JRPG講座【Unity6対応!初心者でもデッキ構築×JRPGをスマホ向けに作れる!】

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座

  • Unity6対応・スマホ化対応で最新環境のゲーム開発が学べる
  • Slay the Spire風のデッキ構築システム×JRPGの組み合わせを実装
  • 初心者でも迷わず進められる丁寧な解説構成
  • ノンフィールドRPGとデッキ構築JRPGの2つをまとめて学べるセット講座

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座は、プログラミング未経験の初心者でも取り組みやすい、ステップバイステップ形式の講座です。

Unity6対応・スマホ化対応の最新カリキュラムで、読んで「なるほど」と思った知識を、実際に動くゲームとして形にする体験ができます。

「何から始めればいいかわからない…」という初心者が最初に選ぶ一本として最適な講座です。

Unity6対応・スマホ化対応の最新カリキュラム
ゼロからでもRPGを完成させよう
→ スレスパ風デッキ構築JRPG講座を見てみる
初心者でもスマホ対応のRPGが作れる!まずは1本完成を目指そう!

Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!初心者でもスマホ化・広告実装まで対応した本格横スクロールACTが作れる!】

Unity 2Dアクションゲームの作り方講座(ロックマン風)

  • ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
  • 7ステージ+ラスボスステージの本格的なゲーム設計を初心者でも実現
  • スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
  • 敵AI15体・多彩なマップギミック・武器システムを完全実装
  • 完全オリジナルゲームをアセット不使用で素材提供付きで制作

Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを、初心者でもゼロから開発できるようになる講座です。

全16回で当たり判定・物理挙動・敵AIの知識を実際のゲームコードとして実装する体験が詰め込まれています。スマホ化・広告実装まで対応しているため、「作って終わり」ではなくリリースまで見据えた実践スキルが身につきます。

「憧れのアクションゲームを自分の手で作ってみたい」という初心者に強くおすすめの一本です。

スマホ化・広告実装まで対応した本格横スクロールACT
初心者でもロックマン風2Dアクションをリリースまで作り上げよう
→ 2Dアクションゲームの作り方講座を見てみる
初心者でも本格ACTが完成する!広告収益まで視野に入れた実践スキルを手に入れよう!

ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

ゼルダ風3Dアクションゲームの作り方講座

  • ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
  • 「3Dは難しそう」と感じている初心者でも取り組みやすい丁寧な解説構成
  • スマホ化対応で実機で動かせるゲームが完成
  • アセットを使った実践的なゲーム開発手法が身につく
  • 画像・動画・全ソースコード公開の充実したサポート

ゼルダ風3Dアクションゲームの作り方講座は、「3Dゲームは難しそう…」と感じている初心者こそおすすめの入門講座です。

全16回の丁寧な解説で、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを確実に完成まで導きます。スマホ化対応で実機で動かせるため、初めて3Dゲームを作り上げた達成感がひときわ大きい講座です。

「3Dゲームを自分でも作れるか試してみたい」という初心者の最初の一歩として最適です。

初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の壁を一気に突破しよう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
全16回でスマホで動くオリジナル3Dゲームを完成させよう!

まとめ

Unityのゲームオーバーは、死亡条件を決める → GameOverManagerで停止とUI表示 → リトライはシーン再読込 → タイトル戻りは085へ遷移、この流れで実装できます。
081のHPや082のスコアと組み合わせれば、プレイの区切りがはっきりします。

負けても次の行動が分かる画面があると、プレイヤーはもう一度挑戦しやすくなります。
タイトルからゲームオーバーまで一通り作りたい方は、Unity入門の森の講座も、戦闘ループからUIまで追える教材として参考になります。
今日は意図的にHPを0にして、ゲームオーバーパネルが出るところまで進めてみてください。

コメント

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