public class ClickBub : MonoBehaviour {
int x;
int count;
TextMeshPro mytext;
TextMeshPro soretext;
GameObject textobj;
// Use this for initialization
void Start () {
textobj = this.gameObject.transform.GetChild (0).gameObject;
mytext = textobj.GetComponent<TextMeshPro>();
在这个mytext中是一个空值。如何将TextMeshValue分配给变量?
还说团结引擎无法转换类型。
答案 0 :(得分:3)
当你这样做时
textobj.GetComponent<TextMeshPro>();
Unity将在对象TextMeshPro
中查找textobj
组件。
根据您的代码,textobj
是具有ClickBub
脚本的对象的第一个子节点。您应首先检查第一个孩子是否在编辑器中有TextMeshPro组件。为了确保您访问所需的元素,您可以尝试打印其名称:
void Start ()
{
textobj = this.gameObject.transform.GetChild (0).gameObject;
Debug.Log(textobj.name);
}
这是你期望的对象吗?
然后,如果一切设置正确但你想添加 TextMeshPro组件,如果它没有,你可以做
void Start ()
{
textobj = this.gameObject.transform.GetChild (0).gameObject;
mytext = textobj.GetComponent<TextMeshPro>();
if(mytext == null)
{
mytext = textobj.AddComponent<TextMeshPro>();
}
}