この記事でのバージョン
Unity 2022.3.32f1
TextMeshProのmaxVisibleCharacters
TextMeshProにはmaxVisibleCharactersという表示する文字数を指定するプロパティがあります。
(Inspectorには表示されていない)
//最初の7文字だけ表示する GetComponent<TextMeshProUGUI>().maxVisibleCharacters = 7;
同様に、表示するワード数を指定するmaxVisibleWordsや、
表示する行数を指定するmaxVisibleLinesもあります。
これらはあくまで表示するものを変えるだけで、テキストの内容自体は変えないので、
以下のように徐々に表示する文字数を増やせば、文字送りみたいな事も出来ます。
using TMPro; using UnityEngine; /// <summary> /// 一定時間ごとに文字送りを進めるクラス /// </summary> public class TextTyper : MonoBehaviour { private TextMeshProUGUI _textMeshPro; private readonly float _charDisplayInterval = 0.02f;//1文字あたりの表示間隔(秒) private float _timer = 0f; private int _visibleCharacters = 0; //================================================================================= //初期化 //================================================================================= private void Start(){ //テキスト取得、文字非表示 _textMeshPro = GetComponent<TextMeshProUGUI>(); _textMeshPro.maxVisibleCharacters = 0; } //================================================================================= //更新 //================================================================================= private void Update() { //終了チェック if (_textMeshPro.maxVisibleCharacters >= _textMeshPro.text.Length){ return; } //タイマーを更新 _timer += Time.deltaTime; //指定した間隔ごとに文字を1つ進める if (_timer >= _charDisplayInterval){ _timer = 0f; // タイマーをリセット _visibleCharacters++; //文字数を更新 _textMeshPro.maxVisibleCharacters = _visibleCharacters; } } }