主机数据对象设置为空引用Unity3D?

时间:2015-01-16 08:01:29

标签: c# unity3d

我正在写一个多人游戏。并检查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语句除此之外。帮助我。

1 个答案:

答案 0 :(得分:1)

if (hostData)仅在hostData是游戏对象或组件时才有效。这是因为Unity实施了implicit operator

换句话说,if (gameObject)可作为if (gameObject != null)的快捷方式。

当您使用其他游戏对象或组件(例如数组或列表)时,这不起作用。在这种情况下,您必须使用!= null