TextMesh Pro文本不会通过脚本更改

时间:2018-12-09 14:02:31

标签: c# unity3d

我似乎无法通过脚本更改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对象拖到该字段上,这可能是问题吗?

enter image description here

1 个答案:

答案 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脚本。