Unity 可搜索下拉列表
Unity Searchable Dropdown
大家好,我正在尝试使用 TMPro InputField 制作可搜索的下拉菜单。它目前得到第一个字母,但我不知道如何添加其他字母。例如,如果我在输入字段中写“a”,它会给我以字母“a”开头的选项,但如果我写“an”,则没有任何变化。
private void Start()
{
UpdateEmoteDropdown();
}
public void UpdateEmoteDropdown()
{
CurrentText = InputField.text;
emoteDropdown.options.Clear();
emoteDropdown.value = 0;
foreach (var animation in Enum.GetValues(typeof(Animations)))
{
string name = Enum.GetName(typeof(Animations), animation);
if (CurrentText.Length == 0)
{
emoteDropdown.options.Add(new Dropdown.OptionData()
{
text = name
});
}
else {
if (CurrentText[0] == name[0])
{
emoteDropdown.options.Add(new Dropdown.OptionData()
{
text = name
});
}
}
}
emoteDropdown.RefreshShownValue();
emoteDropdown.value = 0;
}
好吧,你只检查
中的第一个字母
if(CurrentText[0] == name[0])
不如使用例如string.StartsWith
if(name.StartsWith(CurrentText))
或者,如果您甚至想在任何时候包括包含给定字符串的结果,而不仅仅是开头,而是使用 string.Contains
if(name.Contains(CurrentText))
大家好,我正在尝试使用 TMPro InputField 制作可搜索的下拉菜单。它目前得到第一个字母,但我不知道如何添加其他字母。例如,如果我在输入字段中写“a”,它会给我以字母“a”开头的选项,但如果我写“an”,则没有任何变化。
private void Start()
{
UpdateEmoteDropdown();
}
public void UpdateEmoteDropdown()
{
CurrentText = InputField.text;
emoteDropdown.options.Clear();
emoteDropdown.value = 0;
foreach (var animation in Enum.GetValues(typeof(Animations)))
{
string name = Enum.GetName(typeof(Animations), animation);
if (CurrentText.Length == 0)
{
emoteDropdown.options.Add(new Dropdown.OptionData()
{
text = name
});
}
else {
if (CurrentText[0] == name[0])
{
emoteDropdown.options.Add(new Dropdown.OptionData()
{
text = name
});
}
}
}
emoteDropdown.RefreshShownValue();
emoteDropdown.value = 0;
}
好吧,你只检查
中的第一个字母if(CurrentText[0] == name[0])
不如使用例如string.StartsWith
if(name.StartsWith(CurrentText))
或者,如果您甚至想在任何时候包括包含给定字符串的结果,而不仅仅是开头,而是使用 string.Contains
if(name.Contains(CurrentText))