テキストを表示させてから、数秒後に消すしくみを作ってみましょう。
実行タイミングを操るには、コルーチンを使用します。
Cubeをクリックしてテキスト表示。1秒後に非表示にしてみます。
関連記事:
数秒後にオブジェクトを出現させる
Invokeを使ってn秒後に関数を実行する
触れた相手をn秒後に削除する
クリックしてから1秒間だけtrueにする
触れるとn秒間だけ停止してテキスト表示
クリックするたびにタイマー作動
コルーチンを使って1秒待つ
CubeとTextのオブジェクトを用意します。
今回テキストは、TextMeshProで作っています。
テキストの内容は消しておきます。
CubeClick.csを作成し、Cubeに追加。
コルーチンを使ったスクリプトを書きます。
CubeClick.csを記述しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; //TextMeshProを扱う際に必要 public class CubeClick : MonoBehaviour { [SerializeField] TextMeshProUGUI message; void OnMouseDown() { message.text ="Text Message"; StartCoroutine("SetText"); } IEnumerator SetText() { yield return new WaitForSeconds(1.0f); message.text = ""; } } |
メッセージのフィールドに、Textオブジェクトを入れます。
ゲームプレイして表示を確認しましょう。
Cubeをクリックしてテキスト表示。
1秒後に消えます。
コルーチンの定義は、
IEnumerator コルーチン名(){ 処理内容 }
コルーチンの実行は、
StartCoroutine("コルーチン名");
または、
StartCoroutine(コルーチン名());
経過秒数によって実行タイミングを制御したい場合は、コルーチンを使用しましょう。
関連記事:
数秒後にオブジェクトを出現させる
Invokeを使ってn秒後に関数を実行する
触れた相手をn秒後に削除する
クリックしてから1秒間だけtrueにする
触れるとn秒間だけ停止してテキスト表示
クリックするたびにタイマー作動