如何使用切换组

时间:2017-10-19 20:23:32

标签: c# unity3d

我有一个带有四个选项的下拉菜单,而且我也有切换方式,我想在选择某个选项时这样做,我打开一个特定的切换。这主要是试图找出下拉菜单。我只想知道如何说,当选择一个选项时,会发生这种情况。

我在代码

中声明了一个列表
List<string> encryptions = new List<string>() { "Normal", "L337", "Character Shift", "DoubleCase", "No Vowels" };

3 个答案:

答案 0 :(得分:2)

<强>这里:

enter image description here

如何:

创建一个DropDown并添加您在列表中提到的选项:

enter image description here

在此gameObject上添加以下脚本:

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:

enter image description here

创建一个切换组并相应地在其下切换:

enter image description here

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

enter image description here

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

enter image description here

你很高兴

干杯!

答案 1 :(得分:1)

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;
    }
}

答案 2 :(得分:0)

您有点不清楚自己要做什么,但我想我明白您想要检测下拉列表何时发生变化。为此,只需使用Unity Inspector窗口中的On Value Changed即可。您需要先在脚本中创建一个函数,然后将其附加到检查器中。 Read here了解更多详情。