使用GetComponent找不到TMP_Text或TextMeshPro

问题描述 投票:0回答:1

enter image description here

enter image description here

我正在尝试查找位于

Title
对象上的文本组件。我的脚本位于 Cat 对象上:

private TMP_Text titleText; // Also tried private TextMeshPro titleText;

private void Awake()
{
    titleText = GetComponent<TMP_Text>();
    Debug.Log(titleText); //always NULL
    titleText.text = "Test";  // NullReferenceException: Object reference not set to an instance of an object
}

我已经尝试过

TextMeshPro
TMP_Text
。我也尝试过循环遍历子项,但我的理解是
GetComponent()
应该递归地执行此操作。

unity-game-engine
1个回答
0
投票

GetComponent
函数仅查找调用它的对象的组件。由于您的脚本附加到 Cat 对象,因此该函数会查找也附加到 Cat 对象的 TextMeshPro 组件。如果要查找文本,则必须调用 Title 对象的 get
GetComponent
函数,可以使用
GetChild
函数找到该对象,如下所示:

titleText = transform.GetChild(0).GetChild(1).gameObject.GetComponent<TMP_Text>();
© www.soinside.com 2019 - 2024. All rights reserved.