/*更新记录:20190508*/
说明:以下分日期记录并分享自己使用的经验
快速上手开发请参考最新日期的更新
核心在于dropdown.value 知道我们选择的索引是哪一个Item
2021更新记录
public Dropdown dropdown;
dropdown.onValueChanged.AddListener((index) =>
{
UnityEngine.SceneManagement.SceneManager.LoadScene(index);
}
2017功能记录
1:Dropdown控件组成
Lable和Arrow是用来显示初始化的文字和勾选项的,Lable会根据首选项的内容自动更改。
Template是Dropdown的模板样式,其中Background和Checkmark的图集资源我们可以提前更改。
2:Dropdown属性面板
Caption Text和Caption Image是作为下拉列表首选项的文字和图片显示,也是我们每次选择后的内容,因此可代码调用获取
Item Text作为下拉列表中每个item的文字显示,Item Image可以用来扩展模板增加内容
Value值会随着下拉列表选项的不同而变化,dropdown.value
Options选项栏内:可以动态赋值给Item对象 Dropdown.OptionData
4:代码模块
动态修改样式
public string[] showText;//每个Item下的Text,用来显示和修改
public Sprite[] sprite;//自己用来换每个Item的背景显示
Dropdown dropDownItem;
List<string> temoNames;
List<Sprite> sprite_list;
void Start()
{
dropDownItem = this.GetComponent<Dropdown>();
temoNames = new List<string>();
sprite_list = new List<Sprite>();
AddNames();
UpdateDropDownItem(temoNames);
}
void UpdateDropDownItem(List<string> showNames)
{
dropDownItem.options.Clear();
Dropdown.OptionData temoData;
for (int i = 0; i <showNames.Count; i++)
{
//给每一个option选项赋值
temoData = new Dropdown.OptionData();
temoData.text = showNames[i];
temoData.image = sprite_list[i];
dropDownItem.options.Add(temoData);
}
//初始选项的显示
dropDownItem.captionText.text = showNames[0];
}
void AddNames()
{
for (int i = 0; i <showText.Length; i++)
{
temoNames.Add(showText[i]);
}
for (int i = 0; i <sprite.Length; i++)
{
sprite_list.Add(sprite[i]);
}
}
这样可以在Templete里添加图。如下。。。似乎有点丑
PS:欢迎交流问题留言。