这是我的代码:
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。
如果这篇文章中有错误,请原谅我,因为这是我堆栈溢出的第一天。
答案 0 :(得分:1)
使用name
的{{1}}属性,而不是GameObject
。同时进行防御性编码并检查Transform
:
null
答案 1 :(得分:0)
如果你有一个附加到“no”游戏对象的脚本,请尝试使用:
this.gameObject.name == this.gameObject.transform.parent.gameObject.name
GameObject.Find
有点危险,因为您很容易拼错或更改Unity界面中游戏对象的名称而忘记在代码中更改它。我可以问你为什么需要这个片段吗?