初めての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をドラッグ&ドロップします。

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