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

Unity 5 UI - assigning Dropdown.value causes crash

太好了,我遇到了奇怪的问题。每当我尝试为 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 的任何更改都将导致编辑器崩溃而不会出现任何错误消息。谁能建议任何修复?我什至试图从头开始重新制作整个实例化的预制件,以防它被损坏。我也在另一台机器上检查了项目,仍然发生崩溃。

统一版本:5.5.1f1

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

3 天后我弄明白了,耶:D

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

所以解决方法是在更改初始值后添加侦听器。

感谢 CodingYoshi 的帮助:D