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

标签 c# crash unity-game-engine

所以,我有一个奇怪的问题。每当我尝试为 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 社区)

最佳答案

三天后我想通了,耶:D

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

因此解决方法是在更改初始值后添加监听器。

感谢 CodingYoshi 的帮助:D

关于c# - Unity 5 UI - 分配 Dropdown.value 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333345/

相关文章:

c# - 保存和自动保存 PowerPoint OpenXML PresentationDocuments

c# - 尝试将 ref 添加到重载方法的参数时出错

Android 4.4 native 代码崩溃,与应用程序代码没有任何明显的关系

java - 场景加载时崩溃 - java.lang.ClassCastException

unity-game-engine - 在 Awake 或 Start 中调用 switch 语句

c# - 横向旋转 TreeView

c# - 使用最小起订量模拟 HttpContext 进行单元测试

c++ - STLport 崩溃(竞争条件,仅限 Darwin ?)

visual-studio - 在 Visual Studio 2003 中调试后 IDE 损坏

c# - unity android 忽略游戏对象拖放之间的碰撞