Unity中通过在脚本中自定义名称实现下拉菜单内容的展示
·在编辑器中可以通过设置DropDown下的Template设置下拉内容的格式
·通过设置DropDown组件的Options可以设置选项的背景图等
我们的代码是通过获取DropDown下的Options组件,给该组件添加监听
OptionData就是Options下面的内容,它下面包含两种字段,Text和Image,我们只改变text
下面是全部代码:NameList是你下拉框中要改变的内容
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DropDownContent : MonoBehaviour
{
public Dropdown marketDropDown;
private List<string> NameLists;
void Start()
{
NameLists = new List<string>();
AddNames();
UpdateDropDownView(NameLists);
marketDropDown.gameObject.GetComponent<Dropdown>().onValueChanged.AddListener(ChangeMarketItem);
}
/// <summary>
/// 用于添加信息到列表中
/// </summary>
private void AddNames()
{
string s1 = "全部";
string s2 = "药品";
string s3 = "饲料";
string s4 = "材料";
NameLists.Add(s1);
NameLists.Add(s2);
NameLists.Add(s3);
NameLists.Add(s4);
}
/// <summary>
/// 将数据更新到列表中
/// </summary>
/// <param name="showName"></param>
private void UpdateDropDownView(List<string> showName)
{
marketDropDown.options.Clear();
for (int i = 0; i < showName.Count; i++)
{
Dropdown.OptionData option = new Dropdown.OptionData();
option.text = showName[i];
marketDropDown.options.Add(option);
}
marketDropDown.captionText.text = showName[0];
}
/// <summary>
/// 点击不同的选项,展示不同的内容
/// </summary>
/// <param name="index"></param>
private void ChangeMarketItem(int index)
{
switch (index)
{
case 0 :
Debug.Log("展示全部内容");
break;
case 1:
Debug.Log("展示药品内容");
break;
case 2:
Debug.Log("展示饲料内容");
break;
case 3:
Debug.Log("展示材料内容");
break;
default: break;
}
}
}
Easy!