2016-01-22 52 views
1

这里是我的代码:比较游戏物体的名称,其母公司的名称

GameObject no=GameObject.Find("LevelButton"); 
GameObject noparent=GameObject.Find("LevelPHwithrect (" + (i + 1) + ")"); 

的问题是,我能够找到gameobjects,但是当我打电话

if(no.transform.parent.name==noparent.transform.name) 
{ 
    //do something 
} 

我得到一个错误说空引用,即使它发现的对象,我已经设置no的父母noparent。

请原谅我,如果在这篇文章中有错误,因为这是我的第一天堆栈溢出。

回答

1

使用GameObjectname财产,而不是Transform。还编写防守和检查null

if (no != null && noparent != null && no.name == noparent.name) 
{ 
    //do something 
} 
+0

下次会记住 –

0

如果连接到“无”游戏对象的脚本,尝试使用:

this.gameObject.name == this.gameObject.transform.parent.gameObject.name 

GameObject.Find是一种危险的,因为你可以很容易拼错或在Unity界面更改游戏对象的名称并忘记在代码中进行更改。我可以问你为什么需要这段代码吗?

+0

感谢的人,我想在没有做动作,发现它在不同的方式,感谢您的帮助 –

+0

我该怎么办?对不起 –

+0

您可以选择一个正确答案(使用左侧的复选标记)。如果没有人帮助你,请添加你自己的答案并检查它。你也可以提出你认为合适的答案。 – Derlin