如何将下拉菜单与切换组绑定

Posted

技术标签:

【中文标题】如何将下拉菜单与切换组绑定【英文标题】:How to bind drop down menu with toggle group 【发布时间】:2018-03-31 23:43:39 【问题描述】:

我有一个包含四个选项的下拉菜单,还有如何切换,我想这样做,所以当我选择某个选项时,我会打开某个切换。主要是想弄清楚下拉菜单。我只是想知道如何说,选择一个选项时,会发生这种情况。

我在代码中声明了一个列表

List<string> encryptions = new List<string>()  "Normal", "L337", "Character Shift", "DoubleCase", "No Vowels" ;

【问题讨论】:

【参考方案1】:

这里:

如何:

创建一个下拉菜单并添加您在列表中提到的选项:

在这个游戏对象上添加以下脚本:

public class DropDownToToggle : MonoBehaviour 

    public Toggle[] toggles;

    public void OnDropDownValueChanged(int index)
    
        if ( toggles.Length == 0 || index > toggles.Length)
        
            return; // Toggles are not assigned from inspector.
        

        for (int i = 0; i < toggles.Length; i++)
        
            toggles[i].isOn = (i == index);
        
    

在下拉列表中将事件处理程序分配给 OnValueChanged:

创建一个切换组并在其下进行相应的切换:

添加切换组组件以切换组对象和垂直布局组(可选):

在检查器的切换脚本数组中分配切换:

你很高兴

干杯!

【讨论】:

【参考方案2】:

InputField 有 OnValueChanged 事件。它可以传递一个 Int32 但这个是静态的。您需要的是输入字段的值。

首先,您需要一个输入字段引用到您的项目,然后在调用事件时使用它:

public InputField inputField = null;

public void OnValueChanged(Int32 i)

    int value = this.inputField.value;
    switch(value)
        case 0:
           break;
        case 1:
           break;
    

【讨论】:

【参考方案3】:

有点不清楚您要做什么,但我想我理解您想检测下拉菜单何时更改。为此,只需使用 Unity Inspector 窗口中的On Value Changed。您需要首先在脚本中创建一个函数,然后将其附加到检查器中。 Read here 了解更多详情。

【讨论】:

以上是关于如何将下拉菜单与切换组绑定的主要内容,如果未能解决你的问题,请参考以下文章

如何在替代单击c#上打开和关闭工具条菜单下拉菜单

引导导航下拉菜单切换问题

关于MVC视图下拉菜单绑定与取值的问题

如何在按钮单击时切换下拉菜单并在外部单击时关闭?

Reactstrap 下拉菜单打开倍数菜单

pyside2下拉菜单切换页面