見出し画像

5-2コンプリート画面を作る【Unityゲーム開発の基礎】作って学ぶブロック崩し

ブロック崩しを作りながらUnityを学んでいこう!
フェーズ1で「ブロック崩しの骨格」を作り
フェーズ2で「見た目をかっこよく」して
フェーズ3で「タイトル画面やゲームオーバーなどの画面」を作って
フェーズ4では「アニメーション」させることができました。

フェーズ5の目標は「ステージの作成」です。

前回ステージを増やしてクリア後には次のステージへ移行する仕組みができました。今回はステージをすべてクリアした時の画面を作ります。


コンプリート画面を作る

ゲームクリア画面と同じようにコンプリート画面を作成していきます。
ゲームクリア画面のオブジェクトをコピー&ペーストしてから必要な部分を編集すればわりと楽に作れそうです。

Complete


制御オブジェクトと関連付ける

制御用オブジェクトのスクリプトを編集して、コンプリート画面を制御できるようにします。
MainManagerBehaviourにコンプリート画面用のメンバ変数を追加して、表示・非表示の制御を行います。

public class MainManagerBehaviour : MonoBehaviour
{
       :
    public UICanvasBehaviour gameComplete;     //←コレを追加
       :
       :

    public void OnNewGameButtonClicked()
    {
        gameTitle.Hide();
        gameClear.Hide();
        gameComplete.Hide();                  //←コレを追加
        gameOver.Hide();
          :
          :

    }
       :
       :
}

メンバ変数を追加したら、Inspectorウィンドウでオブジェクトを関連付けます。

Inspector


全てのステージをクリアしたらコンプリート画面を出す

MainManagerBehaviour をさらに変更して、全てのステージをクリアしたらクリア画面の代わりにコンプリート画面を表示するようにします。

public class MainManagerBehaviour : MonoBehaviour
{
      :
      :

    public void OnEnemyUnitDead()
    {
        if ((stages.GetMaxStageNum() - 1) <= stages.GetCurrentStageNum())
        {
            gameTitle.Hide();
            gameClear.Hide();
            gameComplete.Show();
            gameOver.Hide();
            player.gameObject.SetActive(false);
            stages.gameObject.SetActive(false);
            ball.gameObject.SetActive(false);
        }
        else
        {
            gameTitle.Hide();
            gameClear.Show();
            gameComplete.Hide();
            gameOver.Hide();
            player.gameObject.SetActive(false);
            stages.gameObject.SetActive(false);
            ball.gameObject.SetActive(false);
        }
    }
      :
      :
}

ステージ数と現在のステージ番号を比較して表示させる画面を変化させ


これが今回の成果です。


つづく


次回:5-3敵にHP追加する


いいなと思ったら応援しよう!

この記事が参加している募集