【发布时间】:2015-05-02 16:17:32
【问题描述】:
我正在使用 Unity 4.6.1 开发一个项目,但遇到了一个奇怪的问题:我有一个初始设置为 false 的 bool 变量,我正在尝试在 Start() 方法中将其设置为true。首先,同一脚本中的函数在另一个脚本的 Start() 方法之前被调用(这不应该发生吗?)其次,Start() 中的 ready = true; 行似乎没有效果.以下是相关代码:
public int ready = 0;
void Start()
{
texts = new List<string>(3);
texts.Add("");
texts.Add("");
texts.Add("");
text1.text = texts[0];
text2.text = texts[1];
text3.text = texts[2];
Debug.Log("Setting ready to true");
ready = true;
}
public void showText(string text)
{
Debug.Log("Ready=" + ready);
if (!ready)
return;
texts.Insert(2, texts[1]);
texts.Insert(1, texts[0]);
texts.Insert(0, text);
}
运行的日志输出是:
16:07:03.563: Setting ready to true
16:07:24.831: Ready=0
为什么会这样?!
【问题讨论】:
-
尝试更改 Awake() 的启动方法,因为您没有与 UI 进行任何交互,并且该方法应该对您的变量有一些影响。 Unity 有时会用初始化做一些奇怪的事情
-
这并没有真正的帮助,嗯,准备好了是
false无论如何