效果:实现下拉框每个下拉框显示不同的颜色
分析Dropdown组件
当点击拉框显示下拉列表之前,unity 会调用DropDown里面的CreateItem的方法返回DropdownItem对象,显示在界面上,构成下拉框的每一个选项,显示的下拉列表。
如下图:
这里每一个下拉框选项是DropdownItem对象,界面上Item 对应此对象。
而每一个下拉框选项(item)都是一样的结构。
如下图:
控制背景颜色的物体为 Item Background
重写Dropdown 组件
public class MyDropdown : Dropdown
{
protected override DropdownItem CreateItem(DropdownItem itemTemplate)
{
//DropdownItem
DropdownItem drop = base.CreateItem(itemTemplate);
if (drop)
{
//获取Item Background
Transform tr = drop.transform.Find("Item Background");
if (tr)
{
Image im = tr.GetComponent<Image>();
if (im)
{
//todo
}
}
}
return drop;
}
}
效果如下:
由于作者技术水平有限,目前想到实现此效果的办法只有这种,若有您有更好的办法,还请不吝赐教。