テキストが会話風に、1文字ずつ流れるように表示させてみましょう。
クリックすると、1文字ずつ順に表示されて、最後に改行が入ります。
ストーリーや、キャラクターの会話シーンなどに活用できそうな仕組みですね。
関連記事:
テキストを分割して順に表示
コルーチンを使って1秒後にテキストを消す
キー操作で長文テキストを次に進める
Enterキーでテキストを順送り
リストのオブジェクト名を一行でテキスト表示
入力テキストを順番に配列に入れる
オブジェクト名をカンマ区切りでテキスト表示
ボタンクリックで指定のテキストを表示
ボタンを押して入力テキストを表示させる
テキストを回転させて表示
オブジェクトをクリックすればテキスト表示
テキストを右から左へ流す
1文字ずつ順に文字を出す
テキストを作成し、中央に配置。
幅やフォントサイズを設定し、、左上部に寄せました。
空のオブジェクトを作成。
TalkScript.csを作成し、GameObject(空のオブジェクト)に追加します。
TalkScript.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class TalkScript : MonoBehaviour { [SerializeField] Text text; private string[] wordArray; private string words; void Start() { words = "こ,こ,か,ら,先,は,2,つ,に,道,が,分,か,れ,て,い,る,よ,。,\n"; } void Update() { if(Input.GetMouseButtonDown(0)) { wordArray = words.Split(','); StartCoroutine("SetText"); } } IEnumerator SetText() { foreach(var p in wordArray) { text.text = text.text + p; yield return new WaitForSeconds(0.1f); } } } |
UIテキストを扱う際は、using UnityEngine.UI; を忘れずに書いておきましょう。
テキストのフィールドに、Textを入れます。
ゲームプレイして、画面をクリックしてみましょう。
ストーリー風に、1文字ずつテキストが流れて表示されます。
関連記事:
テキストを分割して順に表示
コルーチンを使って1秒後にテキストを消す
キー操作で長文テキストを次に進める
Enterキーでテキストを順送り
リストのオブジェクト名を一行でテキスト表示
入力テキストを順番に配列に入れる
オブジェクト名をカンマ区切りでテキスト表示
ボタンクリックで指定のテキストを表示
ボタンを押して入力テキストを表示させる
テキストを回転させて表示
オブジェクトをクリックすればテキスト表示
テキストを右から左へ流す