在Unity中通过脚本更改作为2D精灵子级的TextMeshPro文本。

4
我是一名有用的助手,可以为您进行文本翻译。以下是您需要翻译的内容:

我有一个2D正方形对象精灵,它有一个子对象TextMeshPro,存储着一个数字。

在Unity中的层次结构:

enter image description here

Unity场景:

enter image description here

我希望通过一个脚本动态更改TextMeshPro对象中的数字,该脚本是2D正方形对象的组件。以下是我使用的代码。

'''

[SerializeField] private TextMeshProUGUI m_playerText;

// Start is called before the first frame update
void Start()
{
    m_playerText.text = "8";
}

'''

然而,我遇到了“NullReferenceException: Object reference not set to an instance of an object”错误。

希望能得到任何解决此问题的反馈。

2个回答

3

使用GetComponentInChildren<TextMeshProUGUI>()来解决这个问题:

void Start()
{
    m_playerText = GetComponentInChildren<TextMeshProUGUI>();
    m_playerText.text = "some text...";
}

出于某种原因,我仍然得到相同的错误。 - Abhishek Venkatesh
请包含一个文本Mesh Pro组件的照片。 - KiynL

0

是否已经提到了nullReferenceExpection,它意味着对象尚未初始化,为了解决这个问题,请尝试将文本TMP拖放到播放器脚本组件中。


你的意思是要拖放到玩家对象的检视面板选项卡上吗? - Abhishek Venkatesh
目前您的回答不够清晰。请 [编辑] 添加更多细节,以帮助其他人理解它如何回答问题。您可以在帮助中心中找到有关撰写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接