我似乎无法通过脚本更改TextMeshPro的值。 在检查器中,我有一个名为Countdown的TextmeshPro对象。我有一个名为GameController的脚本,已附加到此脚本。
然后我的脚本将Countdown的字符串值设置为Hello,但它不起作用。
GameController
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class GameController : MonoBehaviour {
public TextMeshProUGUI Countdown;
// Use this for initialization
void Start () {
Countdown = GetComponent<TextMeshProUGUI> ();
Countdown.text = "Hello";
}
// Update is called once per frame
void Update () {
}
}
在检查器中有一个用于TextMesh的字段,但是由于某种原因我不能将CountDown对象拖到该字段上,这可能是问题吗?
答案 0 :(得分:0)
问题是您正在使用常规TextMeshPro对象,并且在代码中寻找TextMeshProUGUI是一个简单的错误。将代码更改为:
public class GameController : MonoBehaviour {
public TextMeshPro Countdown;
// Use this for initialization
void Start () {
//you shouldnt need to get component the editor should take care of this for you when
//you drop it since you have the object set to TextMeshPro and not just GameObject
Countdown = GetComponent<TextMeshPro> ();
Countdown.text = "Hello";
}
// Update is called once per frame
void Update () {
}
}
制作TextMeshProUGUI对象的唯一方法是通过画布添加它。在您的场景中,当您仅添加一个TMP时,它将是常规TMP,即您的“倒计时”。您可以知道,因为它使用的是TMP脚本而不是TMPUGUI脚本。