1. 需要創建一個DropDown和inputFeild對象,UI的放置如下:(將inputFeild放置在dropdown的上方)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.Linq;
public class Test1: MonoBehaviour {
public InputField inputText;//該輸入框放置在DropDown處
public Dropdown dropDownList;
List<string> strList;
List<Dropdown.OptionData> options = new List<Dropdown.OptionData>();//這是用來存Dropdown.OptionData的中間變量
// Use this for initialization
void Start () {
//strList內的內容設置好後就不要再進行改動了
strList = new List<string>();
strList.Add("北京");
strList.Add("上海");
strList.Add("深圳");
strList.Add("廣州");
strList.Add("內蒙古");
strList.Add("蒙古大草原");
options.Add(new Dropdown.OptionData("請選擇所在地區"));
foreach (string s in strList)
{
options.Add(new Dropdown.OptionData(s));
}
dropDownList.GetComponent<Dropdown>().options = options;
}
void Update()
{
}
//這個函數放在inputFeild的OnEndEdit事件下
public void onValueChange()
{
//使用LINQ進行查詢
var results = from temp in strList where (temp.Contains(inputText.text)) select temp;
options.Clear();
foreach (string s in results)
{
//Debug.Log(s);
options.Add(new Dropdown.OptionData(s));
dropDownList.GetComponent<Dropdown>().options = options;
}
dropDownList.Show();
}
//這個函數放在DropDown的OnValueChange事件下
public void DropDownOnValueChange()
{
inputText.text = dropDownList.transform.GetChild(0).GetComponent<Text>().text;
options.Clear();
foreach (string s in strList)
{
options.Add(new Dropdown.OptionData(s));
}
dropDownList.GetComponent<Dropdown>().options = options;
}
}