1. 按
- 官网说明
- Dropdown(下拉框)可谓是UGUI的集大成者,在Unity Editor里新建一个Dropdown,会随之附赠Text(Label对象)、Image(Arrow对象)、ScrollRect(Template对象)、Toggle(Template\Viewport\Content\item)和ScrollBar(Template\Scrollbar)。点击运行展开下拉框后还会创建一个Button(Blocker),而且还根据Template再实例化一个可见的Dropdown List。
- 本文主要通过一个实例用于将其应用到实际的开发过程中。
2. 前台
- 先创建一个
Canvas
- 在创建一个
Dropdown
,并将它设为Canvas
的子对象
- 将脚本(脚本文件请参考本文的【代码】部分)挂载到
Dropbox
或本场景的其他对象上上,并随后将Dropbox
与脚本里的Dro
p变量进行绑定
3. 代码
3.1. 写法1
添加自定义监听
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Dropdown))]
public class Drop : MonoBehaviour
{
private Dropdown drop;
void Start()
{
drop = this.GetComponent<Dropdown>();
drop.onValueChanged.AddListener(Change);
}
private void Change(int index)
{
Debug.Log(index);
switch (index)
{
case 0: break;
case 1: break;
default: break;
}
}
}
3.2. 写法2
继承自ISelectHandler
Select
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class Select : MonoBehaviour, ISelectHandler
{
public Dropdown drop;
private int lastIndex;
public void OnSelect(BaseEventData eventData)
{
//避免点击下拉列表item和dropdown重复调用
if (drop.value == lastIndex) return;
//处理逻辑
Debug.Log("OnSelect=" + drop.value);
lastIndex = drop.value;
}
}