Unity TextMeshProで変数の値を表示する
今日は、Unityの「TextMeshPro」について勉強してみましょう。
UnityでUIを扱うための基本中の基本だね。
頑張る!
「TextMeshPro」は以前からある「uGUIのText」の不便さを解消したUnityで現在推奨される文字描画機能ですね。
デフォルトでUnityにインストールされているため、すぐに使うことができます。
以下の様にヒエラルキーウインドウの左上から「UI」→「Text TextMeshPro」を選択すれば、テキストを作成することができます。
テキストを作成すると下の様にTMP Importerというものが表示されますので、「Import TMP Essentials 」をクリックします。
これは、「TextMesh Pro」を使用するために必要なリソースをインポートしていて、また、追加リソースなどが入っている「Import TMP Examples and Extras」もインポートすることが推奨されています。
この操作は、プロジェクトごとの最初の一回のみに必要なだけであるので、そんなに手間ではありませんね。
それでは、今回は、スクリプトで変数に値を入れて、その値を「TextMesh Pro」で表示してみましょう。
以下のが、サンプルコードです。
【TMPText001.cs】
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class TMPText001 : MonoBehaviour { [SerializeField] TextMeshProUGUI Text001; // Start is called before the first frame update void Start() { string Hensu001 = "hello!hello!"; Text001.text = Hensu001; } // Update is called once per frame void Update() { } }
ヒエラルキーウインドウの「Create empty」で空のオブジェクトを作成して、そこに上で作成した「TMPText001.cs」をアタッチします。
空のオブジェクトの「GameObject」のインスペクターウインドウの「Text001」の右欄に作成した「TextMeshPro」の「Text(TMP)」をドラッグ&ドロップします。
ゲームを実行すると、変数に入っている「hello!hello!」の値が、作成した「TextMeshPro」へ表示されます。
また、以下は「SetText」という関数を使った方法ですが、こちらでも同じ結果を出すことができます。
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class TMPText001 : MonoBehaviour { [SerializeField] TextMeshProUGUI Text001; // Start is called before the first frame update void Start() { string Hensu001 = "hello!hello!"; //Text001.text = Hensu001; Text001.SetText(Hensu001); } // Update is called once per frame void Update() { } }
以上が、「TextMeshPro」の基本的な使用方法です。文字の表示の位置やその他細かい調整は、今後、学んでいきましょう。
お名前