ズボラ応援ブログ始めました

Unity入門(5)スクリプトからテキストの表示を切り替える

プログラミング

第3弾で、Collider同士がぶつかったときにアニメーションが表示されるように実装しました。

Unity入門(3)衝突判定とアニメーション

今回はアニメーションが表示されたあとゲームオーバーの文字が表示されるようにしてみます。

テキストのenableを設定して表示をコントロールする

テキストのenable属性を変えることでスクリプトから表示・非表示を切り替えることができます。

メッセージを表示するUIを作成する

「Create」-「UI」-「Text」を選択してテキスト表示用UIを追加し、任意の名前をつけます。

「Pos X」「Pos Y」で位置を設定します。

「Width」「Height」で横幅と高さを設定します。

「Text」に表示させたいテキストを入力し、「Font Size」と「Alignment」を設定します。

スクリプトを書く

新しいスクリプトファイルを作成し、次のコードを書きます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DisplayController : MonoBehaviour {
GameObject objGameOver;
void Start()
{
this.objGameOver= GameObject.Find("TextGameOver");
objGameOver.GetComponent<Text>().enabled = false;
}
public void DisplayGameOver()
{
objGameOver.GetComponent<Text>().enabled = true;
}
}

using UnityEngine.UI;の宣言が必要です。

クラス名と”TextGameOver”の部分はご自身がつけた名前に変えてください。

作成したUIをGameObject.Findで検索し、初期状態はenable=false(非表示)にします。

DisplayGameOverメソッドを呼び出すことでenable=true(表示)になります。このメソッドはpublicにしておいてください。

スクリプトを紐づける

作ったスクリプトをCanvasに紐づけておきます。

ゲームオーバー時にメソッドを呼び出す

第3弾で作成した「OnTriggerEnter2D」メソッドに、DisplayGameOverを呼び出す処理を追加します。

爆発アニメーションを表示して障害物とキャラクターを消す処理の後に次のコードを書きます。

GameObject.Find("Canvas").GetComponent<DisplayController>().DisplayGameOver();

GetComponentは他のスクリプトの関数を呼び出したいときに使えます。

実行する

実行してキャラクターと障害物がぶつかったらテキストが表示されるのを確認してください。

次の記事:シーンを読み込んでリロードする

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