2016-01-22 80 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