我试图使用未附加到对象本身的脚本将GameObject设置为活动状态。
GameObject SpecificGame = GameObject.Find("GameT" + gameItemSlot);
SpecificGame.SetActive(true);
SpecificGame.GetComponent<gamesTabItem>().gameID = gameID;
是的,变量gameItemSlot
和gameID
正常工作。
该脚本应该将不活动的GameObject“ GameT1”设置为活动状态。尝试时出现以下错误:
NullReferenceException: Object reference not set to an instance of an object
gamesTab.GenerateTabItem (Int32 gameID) (at Assets/Scripts/gamesTab.cs:104)
System.Collections.Generic.List`1[System.Int32].ForEach (System.Action`1 action) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:361)
gamesTab.UpdateLibrary () (at Assets/Scripts/gamesTab.cs:46)
moneyTime.UpdateDisplay () (at Assets/Scripts/moneyTime.cs:42)
moneyTime.Start () (at Assets/Scripts/moneyTime.cs:31)
据我了解的其他问题和文档,该错误表明SpecificGame的设置不正确。 我是Unity和C#菜鸟,对此感到抱歉:p
答案 0 :(得分:0)
您的Find
方法很可能返回null。使用它之前,请检查是否为null。...
if(SpecificGame != null)
{
SpecificGame.SetActive(true);
//Etc
}
或者您可以使用安全的导航:
SpecificGame?.SetActive(true);