在 Hierarchy 窗口右键,选择 UI 列表里的 Dwondown (下拉列表)控件,即可创建 Dwondown 控件,选中创建的 Dwondown 控件,按键盘【T】键,可以调整 Dwondown 控件的大小和位置。
创建 Dwondown 控件时,系统会自动为其创建一系列控件,如下:
Dropdown 控件的属性面板如下:
说明:Options 中可以增删选项,并且可以给每个选项添加不同背景图片,也可以通过如下方式增删选项:
- Dropdown dropdown = GetComponent
(); - // 增加选项
- dropdown.options.Add(new Dropdown.OptionData("Four"));
- // 删除选项
- dropdown.options.Remove(dropdown.options[2]);
点击 OnValueChanged 下面的 “+” 号,可以为下拉列表添加响应事件,可以添加多个事件。
1)注册已有组件的方法
点击 OnValueChanged 下面的 “+” 号,将 Dropdown 下面的 Label 拖拽到 OnValueChanged 面板里,选择 GameObject.name,下方文本设置 "Text",如下:
切换下拉列表的选项,Label 会重命名为 “Text”,如下:
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 方法。如下:
切换下拉列表的选项,打印日志如下:
3)代码里注册事件
给 Dropdown 控件添加 DropdownController 脚本组件如下:
DropdownController.cs
- using UnityEngine;
- using UnityEngine.UI;
-
- public class DropdownController : MonoBehaviour {
- private void Start() {
- Dropdown dropdown = GetComponent
(); - dropdown.onValueChanged.AddListener(OnValueChanged);
- }
-
- public void OnValueChanged(int index) {
- Debug.Log("OnValueChanged, index=" + index);
- }
- }
注意:AddListener 方法里只能添加入参为 int 类型的方法,可以添加多个方法。
切换下拉列表的选项,打印日志如下: