【问题标题】:How do I hide the panel on my button click?如何在单击按钮时隐藏面板?
【发布时间】:2019-02-07 09:13:19
【问题描述】:

我正在制作游戏的主菜单,我可以在其中选择加入或创建房间。在 Create 按钮下,我制作了一个 Advanced 按钮,它将打开高级面板,为用户提供更多选项,例如房间大小。我做了正确的onclick() 事件,它使用了主菜单面板和高级面板的SetActive 属性。

问题是,当我单击按钮时,会出现高级菜单,但主菜单并没有隐藏。我看过不同的教程,但他们都说要完全按照我的做法去做。

【问题讨论】:

    标签: c# unity3d unity-ui


    【解决方案1】:

    我通常不使用这些内置方法。最好的方法是像这样创建自己的实现:

    public GameObject panel; // drop the panel in the editor
    
    public void onAdvancedClicked()
    {
       panel.SetActive(!panel.activeSelf); // make it active/inactive with one click
    }
    

    在脚本中初始化 panel 的另一种方法是向它添加标签,然后在 start 方法中通过标签获取它:

    panel = GameObject.FindWithTag("panelTag");
    

    【讨论】:

    • 而且我几乎从不为此使用 Inspector UI(因为我经常想将值传递给我的函数!)并最终通过代码使用 GetComponent<Button>().onClick.AddListener(delegate { ... })
    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多