Unity 5 UI - 分配Dropdown.value会导致崩溃

时间:2017-02-19 21:52:38

标签: c# crash unity5

Sooo,我有一个奇怪的问题。每当我尝试为Dropdown.value分配值时,一切都可以,直到这部分在游戏测试期间执行。我的意思是,没有错误信息,没有,整个统一编辑器只是崩溃。

也没有其他可能的错误,我注释掉整个脚本只留下这个并且它崩溃了。删除行有效但我需要它在实例化对象时将默认值设置为下拉列表。我也尝试在范围内分配数字(13个元素,分配5个也不起作用)。它看起来像这样,真的没什么复杂的:

GameObject tempObj = Instantiate(PanelToInstantiate, this.transform);
Dropdown tempDrop = tempObj.transform.FindChild("Dropdown").GetComponent<Dropdown>();
tempDrop.AddOptions(GlobalData.ListOfStrings);
tempDrop.value = 5; //Normally some other variable, but I testes with straight number too

pastebin上的完整脚本:http://pastebin.com/UgWxhuXF

正确添加选项,并在游戏测试期间在检查器中显示。对代码dropdown.value的任何更改都会在编辑器崩溃时结束,而不会显示任何错误消息。有人可以建议任何修复吗?我试图从头开始重新制作整个实例化的预制件,以防它被损坏。我还检查了另一台机器上的项目,但崩溃仍然发生。

Unity版本:5.5.1f1

语言:C#(使用Unity插件的Visual Studio社区)

1 个答案:

答案 0 :(得分:0)

我在3天后想出来了,yay:D

所以,问题是,onValueChange被调用EVERY TIME值被更改。即使是通过脚本。在这里我添加了Awake中的监听器,所以它们在实例化后立即被添加到下拉列表中...然后我更改了值,这些函数调用了这些函数,导致创建具有相同效果的新下拉列表,s,ergo无限循环。

因此修复是在更改初始值后添加侦听器。

感谢CodingYoshi的帮助:D