使用下拉 Unity 隐藏/显示面板

维维克

我刚刚为一些基本的游戏内容启动了一个统一项目。

这可能是错误的问题或无效的过程。

我已经完成了单击按钮时隐藏/显示面板,现在我想在下拉值更改后隐藏/显示。

我有两个面板,一个用于基本信息,另一个用于安全信息。在选择下拉值后,我想显示这些面板之一并隐藏第二个面板。

但我不知道如何实现这一目标。

我正在尝试一些基本逻辑并坚持下去。

我做了什么:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using System.Collections;

public class WithrowModalPanel : MonoBehaviour
{

    public Button cancelButton;
    public GameObject modalPanelObject;
    public GameObject modalPanelObjectAdvance;
    public Dropdown myDropdown;

    private static WithrowModalPanel modalPanel;

    public static WithrowModalPanel Instance()
    {
        if (!modalPanel)
        {
            modalPanel = FindObjectOfType(typeof(WithrowModalPanel)) as WithrowModalPanel;
            if (!modalPanel)
                Debug.LogError("There needs to be one active ModalPanel script on a GameObject in your scene.");
        }

        return modalPanel;
    }

    void Update()
    {
        switch (myDropdown.value)
        {
            case 1:
                Debug.Log("Basic panel!");
                modalPanelObject.SetActive(true);
                modalPanelObjectAdvance.SetActive(false);
                break;

            case 2:
                Debug.Log("Advance panel!");
                modalPanelObjectAdvance.SetActive(true);
                modalPanelObject.SetActive(false);
                break;
        }
    }
}

我只是盯着 unity,对其结构没有太多了解。

雨果

请注意,它Dropdown.value是 0 基索引的,因此第一个条目0不是1我不知道您的完整设置,但我想这是您尝试中的主要问题。

然后 Dropdowns 有一个事件onValueChanged而不是在Update你应该注册一个监听器

private void Start()
{
    // Just to be sure it is always only added once
    // I have the habit to remove before adding a listener
    // This is valid even if the listener was not added yet
    myDropdown.onValueChanged.RemoveListener(HandleValueChanged);
    myDropdown.onValueChanged.AddListener(HandleValueChanged);
}

private void OnDestroy()
{
    // To avoid errors also remove listeners as soon as they
    // are not needed anymore
    // Otherwise in the case this object is destroyed but the dropdown is not
    // it would still try to call your listener -> Exception
    myDropdown.onValueChanged.RemoveListener(HandleValueChanged);
}

private void HandleValueChanged(int newValue)
{
    switch (newValue)
    {
        case 0:
            Debug.Log("Basic panel!");
            modalPanelObject.SetActive(true);
            modalPanelObjectAdvance.SetActive(false);
            break;

        case 1:
            Debug.Log("Advance panel!");
            modalPanelObjectAdvance.SetActive(true);
            modalPanelObject.SetActive(false);
            break;
    }
}

提示:你可以使用泛型 FindObjectOfType

modalPanel = FindObjectOfType<WithrowModalPanel>();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用javascript隐藏/显示div面板

来自分类Dev

使用VisualStateManager隐藏或显示ListViewItem的堆栈面板

来自分类Dev

使用JQuery /局部视图在MVC中隐藏/显示容器面板

来自分类Dev

隐藏和显示下拉列表使用JavaScript

来自分类Dev

使用下拉选项显示/隐藏 div

来自分类Dev

为什么无法隐藏Unity面板?

来自分类Dev

为什么无法隐藏Unity面板?

来自分类Dev

下拉值隐藏显示

来自分类Dev

下拉选项隐藏/显示

来自分类Dev

在Unity面板上显示任意命令的输出

来自分类Dev

Unity面板未在14.04中显示

来自分类Dev

使用飞镖手动隐藏和显示核心支架中的抽屉面板

来自分类Dev

想要使用JavaScript显示和隐藏下拉菜单

来自分类Dev

使用jQuery从下拉菜单中显示/隐藏选项

来自分类Dev

jQuery使用选择框/下拉列表显示隐藏问题

来自分类Dev

如何使用Material Angle显示/隐藏下拉列表

来自分类Dev

使用jQuery选择下拉选项后显示隐藏的字段集

来自分类Dev

使用下拉菜单隐藏和显示元素

来自分类Dev

使用 jQuery 显示/隐藏下拉菜单的 <li> 元素

来自分类Dev

如何在Unity的顶部面板中隐藏项目?

来自分类Dev

如何在Unity的顶部面板中隐藏项目?

来自分类Dev

是否可以使用与Unity默认面板不同的面板?

来自分类Dev

在 Unity 的多选下拉菜单中显示 ScriptableObjects

来自分类Dev

如何使用不同下拉菜单中的选项显示-隐藏下拉元素

来自分类Dev

根据下拉列表以素面显示面板

来自分类Dev

如何通过单击下拉菜单隐藏面板?

来自分类Dev

在Unity中下拉终端

来自分类Dev

无法隐藏和显示面板

来自分类Dev

隐藏和显示表单(面板)

Related 相关文章

热门标签

归档