我正在写一个多人游戏。并检查OnGUI(),如果有任何hostData做某事。
if (hostData)
{
for (int i = 0; i < hostData.Length; i++)
{
GUI.Button (new Rect (btnX * 2f + btnW, btnY * 1.2f + (btnH * i), btnW * 3f, btnH * 0.5f), hostData [i].gameName);
}
}
但是我在按钮点击时填充了主机数据,而另一方面OnGUI总是在寻找if(hostData),这就是它给出Null引用的原因。
我如何检查此if语句除此之外。帮助我。
答案 0 :(得分:1)
if (hostData)
仅在hostData是游戏对象或组件时才有效。这是因为Unity实施了implicit operator。
换句话说,if (gameObject)
可作为if (gameObject != null)
的快捷方式。
当您使用其他游戏对象或组件(例如数组或列表)时,这不起作用。在这种情况下,您必须使用!= null
。