redhat9i 发表于 2023-1-11 09:27

Unity DropDown组件

前段时间遇到了下拉栏的制作,之前没有用过DropDown组件,相关的组件属性以及api都不熟悉,趁此记录一下。
组件item



对象作用Label初始化显示Arrow初始化下拉箭头Template准备生成的下拉栏模板Item滑动栏内的item模板Item Backgrounditem背景图片Item Checkmarkitem选中图片Item Labelitem显示文本Scrollbar滚动栏(超出模板高度或宽度启用)组件属性



常用相关API

当前选项的Image组件
Dropdown dp = GameObject.Find("dropDown").GetComponent<Dropdown>();
Image img = dp.captionImage;
当前选项的Text组件
Dropdown dp = GameObject.Find("dropDown").GetComponent<Dropdown>();
Text txt = dp.captionText;
item模板的image组件
Dropdown dp = GameObject.Find("dropDown").GetComponent<Dropdown>();
//get
Image img = dp.itemImage;
//set
dp.itemImage = img;
item模板的text组件
Dropdown dp = GameObject.Find("dropDown").GetComponent<Dropdown>();
//get
Text txt = dp.itemText;
//set
dp.itemText = txt;
监听事件
Dropdown dp = GameObject.Find("dropDown").GetComponent<Dropdown>();
//remove
dp.onValueChanged.RemoveAllListeners();
dp.onValueChanged.RemoveListener(actionName);
//add
dp.onValueChanged.AddListener(actionName);

void actionName(int index)
{
switch(index)
{

}
}
选项列表
options就是一个Dropdown.OptionData类型的List
操作都与List相同
Dropdown.OptionData包含text与image
Dropdown dp = GameObject.Find("dp").GetComponent<Dropdown>();
Dropdown.OptionData data = new Dropdown.OptionData();
data.text = "text";
Sprite sp = dp.itemImage.sprite;
data.image = sp;

//添加一个OptionData对象的列表到选项中
dp.AddOptions(dp.options);
//清除所有选项
dp.ClearOptions();
//隐藏下拉栏
dp.Hide();
//显示下拉栏
dp.Show();
//刷新当前选项
dp.RefreshShownValue();
页: [1]
查看完整版本: Unity DropDown组件