用字符串统一设置下拉值

时间:2019-01-03 10:54:27

标签: c# unity3d

有人知道如何使用统一的字符串设置的dropdownUI值吗?
我知道如何用这样的int设置它

public DropDown dropdown;

dropdown.value = 1;

但是,我想要的是使用给定的字符串设置值。

类似的东西:

dropdown.value = "an Option";

3 个答案:

答案 0 :(得分:3)

查看Dropdown.value的文档:

  

public int value;

     

值是下拉列表中当前选择的索引号。 0是下拉列表中的第一个选项,1是第二个选项,依此类推。

它的类型为int,因此简而言之:不能


不过,您可以使用available optionsIndexOf本身获取索引:

// returns a list of the text properties of the options
var listAvailableStrings = dropdown.options.Select(option => option.text).ToList();

// returns the index of the given string
dropdown.value = listAvailableStrings.IndexOf("an Option");

您也可以使用FindIndex

在同一行中执行相同操作
dropdown.value = dropdown.options.FindIndex(option => options.text == "an Otpion");

答案 1 :(得分:0)

此答案是在您要设置下拉项文本的假设下编写的。由于将值设置为string,因此将值设置为int是不可能的。有关如何从选项获取索引的信息,请参见derHugo的答案。


dropdown.value实际上并不代表文字是节目。代替value

  

是下拉列表中当前选择的索引号。 0是   下拉菜单中的第一个选项,第二个是1,依此类推。

docs here

中所述

您正在寻找的是Dropdown.itemTextdocs

要在下拉菜单中设置文本,您必须执行以下操作:dropdown.itemText = "an Option";

Unity manual here

中可以找到有关下拉菜单工作方式的更完整指南。

答案 2 :(得分:0)

我们无法将字符串值添加到下拉值字段。因此,如果需要显示具有给定字符串的选项,请使用FindIndex选项在下拉列表中找到该选项,然后将该索引分配给value字段。

dropdown.value = dropdown.options.FindIndex(option => options.text == "an Otpion");