フラッピーバード風ゲームの作り方

Unity 2D ゲームクリアの処理を作ろう!フラッピーバード風ゲームを作る方法その15

2025年8月3日

かとこう

こんにちは!カトサンラボのかとこうです。

この記事ではUnityで「ゲームクリアの処理」を
作る方法についてわかりやすく解説しております。

今回はクリアした時にログを出して、
ゲームを停止させることでクリアを表現しています。

今回の作業の流れ

ゴールの処理を作成しようの手順画像

▼ 動画での解説はこちら(2時間9分14秒くらいから)

スポンサーリンク

1、 ゴール用のC#スクリプトを作ろう

まずは、ゴールに辿り着いた時の処理を書くために
ゴールクリア用のC#スクリプトを作ります。

ゴール用のC#スクリプトを作る手順

  1. プロジェクトウインドウの「Assets」をクリックする
  2. プロジェクトウィンドウの「+」ボタンをクリックする
  3. 「C#スクリプト」を選択して作成する
  4. スクリプト名を GoalClear に変更する(他のわかりやすい名前でもOK)

これで、新しくゴール用のC#スクリプトが作成できました!

ゴール用のC#スクリプトを作った画像

2、 ゴールのオブジェクトにスクリプトをつけよう

次に、作ったスクリプトをゴールのオブジェクト
(ひよこちゃんの画像)につけましょう。

ゴールにC#スクリプトをつける手順

  1. ヒエラルキーから「Goal」オブジェクトをクリックする
  2. 作成した GoalClear スクリプトを、Goalのインスペクターにドラッグ&ドロップする

これでGoalのインスペクターに
スクリプトが表示されればOKです!

Gaolオブジェクトにスクリプトがついた画像

3、ゲームクリア時のコードを書こう

ここからは、スクリプトを開いて
ゲームクリアの処理を書いていきます。

今回は、

  • プレイヤーがゴールに当たったら
  • 「ゲームクリア!」というログを表示
  • 時間を停止してゲームを止める

というシンプルな内容です。

以前作ったゲームオーバーの処理に
内容が似ているので、コピーして
改良していきますね。

コードを書く手順

  1. GoalClear スクリプトをダブルクリックして開く
  2. 以前作った「トゲに当たったらゲームオーバー」のスクリプトから、コードをコピーする
  3. コードの内容を「クリア用」に少し変更する

ゲームクリアのコードはこちら

using System.Colections;
using System.Colections.Generic;
using UnityEngine;

public class GoalClear : MonoBehaviour
{

 // 衝突した時に処理が行われる関数
 public void OnColisionEnter2D(Colision2D colision)
 {
    // もしプレイヤーがゴールにぶつかった時にクリアの処理を行う
    if (colision.gameObject.tag == "Player") // もしぶつかったゲームオブジェクトのタグがプレイヤーだったら
    {
      Debug.Log("ゲームクリア!");
      Time.timeScale = 0; // ゲームをストップするコード
    }
 }
}

これでコードは完成です!

4、テストプレイでクリアの処理を確認しよう!

最後に、テストプレイを行ってクリアの処理が
ちゃんと出来ているかを確認しましょう。

チェックポイント

  • プレイヤーがゴールに触れたとき、「ゲームクリア!」と表示されるか
  • プレイヤーがゴールに触れたとき、時間が停止してゲームが止まるか
  • ゴールまで正常に到達できるか

シーンビューの上にある「▶ボタン」をクリックして
テストプレイを開始後、動作を確かめましょう。

テストプレイでゲームクリアの処理を確認した画像

▶︎ 注意点と今後の改善ポイント

今回のテストを行った際に、

プレイヤーがゴールの上をすり抜けられる

と言う改善点がありました。

ゴールを飛び越えた画像

プレイヤーがゴールの上をすり抜けられると
ゴールのひよこちゃんに当たらないため
ゲームがクリアになりません。

次回は、このゴールを越えられてしまう問題を
改善していきましょう!

まとめ

今回の作業では、Unityでゲームクリアの
処理を作るために以下のことを行いました。

  • ゴール用のC#スクリプトを作成する
  • Goalオブジェクトへゴール用のC#スクリプトをつける
  • 「プレイヤーが触れたらクリア」と言う処理のコードを書く
  • テストで動作の確認をする

今回は以前作ったコードをコピーして修正することで、
効率よく作成できましたね。

同じような処理を作る場合には役立つテクニックなので
覚えておくといいかもしれません。

次の記事ではゴールを越えられないように
見えない壁を作る作業について解説しますね。

▼ 次の記事はこちら

>> Unity 見えない壁を作ろう!2Dフラッピーバード風ゲームを作る方法その16

-フラッピーバード風ゲームの作り方