![見出し画像](https://assets.st-note.com/production/uploads/images/125663711/rectangle_large_type_2_0f8b7798ff9410c015c3dff3556eadf6.png?width=1200)
5-2コンプリート画面を作る【Unityゲーム開発の基礎】作って学ぶブロック崩し
ブロック崩しを作りながらUnityを学んでいこう!
フェーズ1で「ブロック崩しの骨格」を作り
フェーズ2で「見た目をかっこよく」して
フェーズ3で「タイトル画面やゲームオーバーなどの画面」を作って
フェーズ4では「アニメーション」させることができました。
フェーズ5の目標は「ステージの作成」です。
前回ステージを増やしてクリア後には次のステージへ移行する仕組みができました。今回はステージをすべてクリアした時の画面を作ります。
コンプリート画面を作る
ゲームクリア画面と同じようにコンプリート画面を作成していきます。
ゲームクリア画面のオブジェクトをコピー&ペーストしてから必要な部分を編集すればわりと楽に作れそうです。
![](https://assets.st-note.com/img/1703574808651-y61vBRJrcW.png?width=1200)
制御オブジェクトと関連付ける
制御用オブジェクトのスクリプトを編集して、コンプリート画面を制御できるようにします。
MainManagerBehaviourにコンプリート画面用のメンバ変数を追加して、表示・非表示の制御を行います。
public class MainManagerBehaviour : MonoBehaviour
{
:
public UICanvasBehaviour gameComplete; //←コレを追加
:
:
public void OnNewGameButtonClicked()
{
gameTitle.Hide();
gameClear.Hide();
gameComplete.Hide(); //←コレを追加
gameOver.Hide();
:
:
}
:
:
}
メンバ変数を追加したら、Inspectorウィンドウでオブジェクトを関連付けます。
![](https://assets.st-note.com/img/1703576889556-m62yoLzaPP.png?width=1200)
全てのステージをクリアしたらコンプリート画面を出す
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);
}
}
:
:
}
ステージ数と現在のステージ番号を比較して表示させる画面を変化させ
これが今回の成果です。
Phase5-2の成果(コンプリート画面を作る)https://t.co/ouCSAQZcbN#unity #indiedev #indiegame pic.twitter.com/qT0sZfX2Pr
— をりはぅ@indiedev (@worihau__) December 27, 2023
つづく
次回:5-3敵にHP追加する