【Unity3D】UGUI之Dropdown

1 Dropdown属性面板

​ 在 Hierarchy 窗口右键,选择 UI 列表里的 Dwondown (下拉列表)控件,即可创建 Dwondown 控件,选中创建的 Dwondown 控件,按键盘【T】键,可以调整 Dwondown 控件的大小和位置。

img

​ 创建 Dwondown 控件时,系统会自动为其创建一系列控件,如下:

img

​ Dropdown 控件的属性面板如下:

img

​ 说明:Options 中可以增删选项,并且可以给每个选项添加不同背景图片,也可以通过如下方式增删选项:

Dropdown dropdown = GetComponent<Dropdown>();
// 增加选项
dropdown.options.Add(new Dropdown.OptionData("Four"));
// 删除选项
dropdown.options.Remove(dropdown.options[2]);

2 Dropdown 注册事件

​ 点击 OnValueChanged 下面的 “+” 号,可以为下拉列表添加响应事件,可以添加多个事件。

1)注册已有组件的方法

​ 点击 OnValueChanged 下面的 “+” 号,将 Dropdown 下面的 Label 拖拽到 OnValueChanged 面板里,选择 GameObject.name,下方文本设置 "Text",如下:

img

​ 切换下拉列表的选项,Label 会重命名为 “Text”,如下:

img

2)注册脚本组件里面的方法

​ 给 Dropdown 控件添加 DropdownController 脚本组件如下:

​ SliderController.cs

using UnityEngine;

public class DropdownController : MonoBehaviour {

	public void OnDropdown1() {
		Debug.Log("Dropdown1");
	}
 
	public void OnDropdown2(string msg) {
		Debug.Log("Dropdown2, msg=" + msg);
	}
 
	public void OnDropdown3(int index) {
		Debug.Log("Dropdown3, index=" + index);
	}
}

​ 注意:待注册的方法,最多只能提供 1 个参数, 当参数为 int 类型时,入参表示选择的选项序号(index)。

​ 点击 OnValueChanged 下面的 “+” 号,将 DropdownController 脚本组件拖拽到 OnValueChanged 面板里,选择 DropdownController.OnDropdown1 方法;再点击 OnValueChanged 下面的 “+” 号,将 DropdownController 脚本组件拖拽到 OnValueChanged 面板里,选择 DropdownController.OnDropdown2 方法,其下方输入"xxxx";点击 OnValueChanged 下面的 “+” 号,将 DropdownController 脚本组件拖拽到 OnValueChanged 面板里,选择 DropdownController.OnDropdown3 方法。如下:

img

​ 切换下拉列表的选项,打印日志如下:

img

3)代码里注册事件

​ 给 Dropdown 控件添加 DropdownController 脚本组件如下:

​ DropdownController.cs

using UnityEngine;
using UnityEngine.UI;

public class DropdownController : MonoBehaviour {
	private void Start() {
		Dropdown dropdown = GetComponent<Dropdown>();
		dropdown.onValueChanged.AddListener(OnValueChanged);
	}
 
	public void OnValueChanged(int index) {
		Debug.Log("OnValueChanged, index=" + index);
	}
}

​ 注意:AddListener 方法里只能添加入参为 int 类型的方法,可以添加多个方法。

​ 切换下拉列表的选项,打印日志如下:

img

​ 声明:本文转自【Unity3D】UGUI之Dropdown

posted @ 2023-03-20 20:50  little_fat_sheep  阅读(123)  评论(0编辑  收藏  举报