一.Dropdown的应用
Dropdown控件官方翻译为下拉选单,游戏中有一定程度的使用,其优势是用户体验优秀,节省界面空间,下图为某游戏的实际应用
二.Dropdown对象的结构
对象 | 说明 |
---|---|
Label | 当前选中的选项 |
Arrow | 向下或向上箭头表示展开方向 |
Template | 选项列表,ScrollView对象 |
三.Dropdown组件的属性
属性 | 功能 |
---|---|
Template | 下拉列表对象变换组件的引用 |
Caption Text | 选中对象文本组件的引用(可选) |
Caption Image | 选中对象图像组件的引用(可选) |
Placeholder | 将一个对线视为占位对象,使其不可见(被设置的对象Image或Text组件会失效) |
Item Text | 选项文本组件的引用(可选) |
Item Image | 选项图像组件的引用(可选) |
Value | 当前所选选项的索引。0 代表第一个选项,1 代表第二个。 |
Alpha Fade Speed | 选项列表淡入淡出的速度(0代表最快,1代表最慢) |
Options | 选项的列表。可为每个选项指定一个文本和一个图像。 |
四.设置选项列表的位置
下拉列表相对于下拉选单控件的位置由模板的锚点和轴心确定。默认情况下,列表将显示在控件下方。这是通过将模板锚定到控件的底部,模板的轴心位于顶部来实现的。
若要将选项放到标题上方,需要修改Template的锚点,轴心和Y坐标,如图所示
五.事件监听/常用方法
void Start()
{
int opNum = 3;
TMP_Dropdown dropdown = GameObject.Find("Dropdown").GetComponent<TMP_Dropdown>();
//清空选项
dropdown.options.Clear();
//添加选项方式一
for(int i = 1; i <= opNum; i++)
{
TMP_Dropdown.OptionData option = new TMP_Dropdown.OptionData();
option.text = "Option" + i.ToString();
dropdown.options.Add(option);
}
//添加选项方式二
dropdown.AddOptions(new List<string> { "Option a", "Option b", "Option c" });
//监听选择事件
dropdown.onValueChanged.AddListener(delegate (int value)
{
Debug.Log(value + ", "+ dropdown.options[value].text);
});
//设置默认选项
dropdown.SetValueWithoutNotify(1);
Debug.Log(dropdown.value + ", "+ dropdown.options[dropdown.value].text);
//刷新
dropdown.RefreshShownValue();
}