2015-11-13 40 views
0

我累了調試,但不知道是什麼問題Gameobject.find被返回null

foreach (string go in dist) 
{ 
    Debug.Log("gameobject texture change " + go); 
    Debug.Log(go.ToString()); 
    Debug.Log(go.GetType()); 
    string s = go; 
    string ss = "GRB_BLD_RESIDENT_z17x68817y86702_V0_L9_2015_18"; 
    Debug.Log(GameObject.Find("GRB_BLD_RESIDENT_z17x68817y86702_V0_L9_2015_18").name); 
    Debug.Log(GameObject.Find(ss).name); 
    if (GameObject.Find(s.ToString()) != null) 
    { 
     Debug.Log(GameObject.Find(s).name); 
     Debug.Log("gameobject is not null"); 
    } 
    else { 
     Debug.Log("gameobject is null"); 
    } 

,如果我用這個,

Debug.Log(GameObject.Find("GRB_BLD_RESIDENT_z17x68817y86702_V0_L9_2015_18").name); 

它會帶來的遊戲對象,但使用循環它不工作。我有記錄所有名字都是正確的和相同的。

回答

0

如果我理解正確你想找到所有gameobjects在dist,是否正確? 什麼是你Debug.Log(go.ToString())輸出?

go已經是一個字符串,我懷疑從string得到一個ToString()將簡單地返回string而不是字符串的值。

0

下面的代碼工作的原因是Debug.Log(GameObject.Find(「GRB_BLD_RESIDENT_z17x68817y86702_V0_L9_2015_18」)。name);因爲你正在使用Gameobject類並訪問其名稱屬性。

但在你foreach循環你迭代的字典,如果您使用的foreach(遊戲對象OBJ在字典),那麼上述工作將使用其字符串元素。

你也可以這樣做,如果(進入== 「nameOfObject」)

希望它可以幫助