Unityで2Dゲームの終了画面を作成(Canvasのテキスト)【2Dゲーム作成.06】

初めてのUnityでゲーム作成、第6回目です。ようやく何となくゲームとしての形は完了してきてますね。今回はゲーム終了画面をCanvasのtextを使って作成です。第1回目の記事は下記から

終了画面(エンディング画面)を作成

前回まででとりあえずのゲーム作成は完了。とはいえ、マトを全部消しても何も起きないので、終わったのを表示します。いろんな方法があるとは思うけど、今回はテキストを画面に表示するだけの簡単なものを作成。

Canvasのtextを作成

テキストのUIがあるのでそれを使っていきます。ヒエラルキー内で右クリックして「UI」から「テキスト」を選択。

このCanvasってのはすごくでっかいのです。「シーン」ではよくわからないので、「ゲーム」にすると左下の方に小さくテキストが表示されているので、画面の真ん中に来るように位置やフォントサイズを調整。

マトが全部消えたらここに文字を表示するイメージですね。

終了判定の追加

次に終了判定用にカウンターを追加します。Enemy.csにカウンター用変数を追加。マトが作られたらカウントアップ、消えたらカウントダウンみたいな感じです。

終了画面用オブジェクトの作成

次に終了画面用のオブジェクトを作成していきます。ヒエラルキー内で右クリックして「空のオブジェクトを作成」、名前はEndingにでもしておきます。

作成したオブジェクトに「コンポーネントを追加」から「新しいスクリプト」を選びます。名前は「EndingScript」としてます。

このEndingScriptに終了判定用のスクリプトを作成していきます。下記のような感じですね。簡単に説明するとStartでテキストを消してカウントが0になったら「終了」というテキストを表示するって感じです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class EndingScript : MonoBehaviour
{
    public GameObject txt_object = null;
    // Start is called before the first frame update
    void Start()
    {
        Text txt_ending = txt_object.GetComponent<Text>();
        txt_ending.text = null;
    }

    // Update is called once per frame
    void Update()
    {
        if (Enemy.iCount == 0)
        {
            Text txt_ending = txt_object.GetComponent<Text>();
            txt_ending.text = "終了";
        }
    }
}

スクリプトを作成するとGameObjectが追加されるのでここに作成したCanvasのTextをドラッグ&ドロップします。

これでエンディング画面・・・というか終了したらテキストを表示するのが完成です。実際に動かしてみてマトが全部消えて下記のようになれば完成。

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