button - Unity3d 4.6 GUI - 单击按钮脚本从预制件中消失

标签 button user-interface unity3d beta

我正在使用新的 Unity3d 4.6 GUI Beta。我创建了一个 Canvas 并在 Canvas 上附加了一个按钮。我已将脚本附加到一个空的游戏对象,其中包含一个供按钮使用的方法。当我单击按钮时,一切正常。但是,如果我将相同的 Canvas 变成预制件,当我实例化预制件时,按钮的“单击时”部分变为空并且按钮不再起作用。我还尝试只将按钮制作成预制件,而不是将按钮作为其子元素的 Canvas ,这是一回事。我真的希望有人知道如何在按钮仍然有效的情况下制作按钮预制件。

最佳答案

您可以像我一样解决这个问题 - 我最终在代码中手动添加了按钮监听器(见下文)。只需确保在实例化预制件时执行此操作即可。即使在最新的 Unity 客户端中,您尝试执行此操作的“UI 方式”似乎也已损坏。

    var buttonTransform = this.transform.FindChild("Button");
    _buttonScript = buttonTransform.GetComponent<Button>();
    _buttonScript.onClick.AddListener(() => Flip());

Unity 网站上有关于此问题的更多信息,http://answers.unity3d.com/questions/794720/on-click-paramaters-disappear-from-button-prefab.html但我找不到他们团队记录的相应问题。

关于button - Unity3d 4.6 GUI - 单击按钮脚本从预制件中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25967118/

相关文章:

Java/Swing - 如何减小 JDialog 构造函数的大小?

c# - 重复序列化和反序列化创建重复项

objective-c - "Expected expression before ' { ' token"

javascript - 如何使用函数动态设置 img src

css - Bootstrap btn-group 未对齐

java - 不调整窗口大小不显示内容

java - 屏幕旋转后按钮属性更改不会保存

java - MouseListener 类从未被调用?

c# - 为什么我的对象的位置没有改变?

c# - Unity+Firebase-数据库[错误] WebSocket : ws_0 - could not connect