TextMeshProにハマったので解決方法を書いておきます。
ミスったコード
UI上のTextMeshProをスクリプトから変更しようと思い以下のコードを書きました。
using TMPro;
using UnityEngine;
public class TtTest : MonoBehaviour
{
TextMeshPro tt;
void Start()
{
tt = GetComponent<TextMeshPro>();
tt.text = "失敗小僧咳き込む";
}
}
しかし、TextMeshProがnullとなってしまい変更できません。
ミスの原因
実はTextMeshProは二種類あります。
- TextMeshPro
- TextMeshProUGUI
ゲームシーン用のTextMeshProとUI用のTextMeshProUGUIです。
私はUI上のTextMeshProを変更しようとしたのですが、ゲームシーンのTextMeshProを取得するコードを書いていたんですね。
解決方法
UI用のTextMeshProはTextMeshProUGUIで取得しましょう。
修正後のスクリプト。
using TMPro;
using UnityEngine;
public class TtTest : MonoBehaviour
{
TextMeshProUGUI tt;
void Start()
{
tt = GetComponent<TextMeshProUGUI>();
tt.text = "失敗小僧咳き込んだ";
}
}