まず、Hierarchyから、UI→Text - TextMeshProを選択します。するとText (TMP)というゲームオブジェクトがCanvasの子要素として追加されているはずなので位置とサイズを調整し、下の画像のように画面上にテキストを表示させます。表示させるテキストの内容は何でも良いです。
このTextMeshProのテキストを取得するには、適当なゲームオブジェクトに以下のコードのスクリプトをアタッチし、InspectorでTextにさっき追加したText (TMP)を割り当てます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro; //名前空間を追加
public class Sample : MonoBehaviour
{
public TextMeshProUGUI Text;
void Start()
{
// TextMeshProUGUIのテキストの内容をConsoleに出力
if (Text != null)
{
string currentText = Text.text;
Debug.Log(currentText);
}
}
}
エディターを再生するとConsoleにText (TMP)の内容が出力されているはずです。
using TMPro;をスクリプトの最初に追加していないとこのエラーが発生するので、追加してください。
さっきのスクリプトを下のコードのように変更して、エディターを再生すると画面に表示さているテキストのに内容が変わります。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class Sample : MonoBehaviour
{
public TextMeshProUGUI Text;
void Start()
{
// TextMeshProUGUIのテキストの内容を変更
if (Text != null)
{
Text.text = "New Text";
}
}
}
Hierarchyで、UIからではなく3D Object→Text - TextMeshProから生成した、TextMeshProのテキストの内容を取得するには、上のコードの
public TextMeshProUGUI Text;
の部分を
public TextMeshPro Text;
のように書き換える必要があります。