如何将下拉菜单与切换组绑定
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 了解更多详情。
【讨论】:
以上是关于如何将下拉菜单与切换组绑定的主要内容,如果未能解决你的问题,请参考以下文章