Unity抛出nullreference访问静态变量时出现异常

时间:2015-06-07 10:20:03

标签: c# unity3d nullreferenceexception

我想使用静态变量为其他脚本提供Gui-text。在我将这些变量声明为静态的脚本中,一切正常 - 在所有其他脚本中,我得到NullReferenceException

这里是Outputscript的代码:

public class OutputScript : MonoBehaviour {
   public static UnityEngine.UI.Text CommandText;
   public UnityEngine.UI.Text ct1;
   void Start()
   {
           CommandText = ct1;
           Debug.Log("static output's set");
   }
}

以下是访问它的另一个脚本的方法:

void OnTriggerExit()
{
    OutputScript.CommandText.text = "";//nullRefException
}

如果我在OutputScript中尝试这个,那就没有异常

void Start()
{
  CommandText = ct1;
  OutputScript.CommandText.text = "";//works fine
  Debug.Log("static output's set");
}

如果我签入null的其他脚本,则会返回true

我知道NullReferenceException是什么,但是在这种情况下我设置了公共静态变量,但是它的值在这个脚本中不是空的,这对我来说并不合乎逻辑。 我真的不知道那里发生了什么。

对于那些不了解Unity3d Scipt enigne的人:

  • 始终首先调用Start()方法
  • OnTriggerExit()方法在Start()
  • 之后执行

0 个答案:

没有答案