ある数値になれば、そのテキストカラーが変わっていくように、プログラムを作成してみましょう。
今回の例では、3秒のカウントダウンを作成。
2秒、1秒と数値が変わるたびに、テキストの色も変えていきます。
TextMeshProの作成
まずはTextMeshProをインポートしましょう。
ヒエラルキー > UI > TextMeshProを選択します。
TMP Importの画面が出ますので、Import TMP Essentialsをクリックしましょう。
Assets内に、TextMeshProのフォルダが確認できます。
Text(TMP)のサイズ、色、位置などを設定します。
ゲームビューではこのように見えています。
ある数になればテキストカラーを変更
空のオブジェクトを作成します。
TextColor.csを作成し、GameObject(空のオブジェクト)に追加します。
TextColor.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; //TextMeshProを扱う際に必要 public class TextColor : MonoBehaviour { [SerializeField] TextMeshProUGUI timeText; private float time; void Start() { time = 3.0f; timeText.color = new Color(0.0f, 0.0f, 0.0f, 1.0f); //黒 } void Update() { if (time >= 0) { time -= Time.deltaTime; timeText.text = "Time: " + time.ToString("F1"); } if (time <= 2.0f) { timeText.color = new Color(0.0f, 0.0f, 1.0f, 1.0f); //青 } if (time <= 1.0f) { timeText.color = new Color(1.0f, 0.0f, 0.0f, 1.0f); //赤 } } } |
TimeTextのフィールドに、Text(TMP)を入れます。
ゲームプレイしてみましょう。
2秒になればブルー、1秒になればレッドに変わります。
カラーの設定はRGBAの値、0~1.0の間で設定します。
RGBA値はこのウィンドウから確認しましょう。