Unity(一)关于Unity Dropdown控件的使用心得

xiaoxiao2021-02-28  67

/*更新记录: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:欢迎交流问题留言。

   

转载请注明原文地址: https://www.6miu.com/read-23709.html

最新回复(0)