graphic方法重写 unity_Unity Dropdown组件重写

本文介绍了如何在Unity中重写Dropdown组件,以实现每个下拉选项显示不同颜色的效果。通过分析Dropdown的工作原理,发现它在显示下拉列表前会调用CreateItem方法创建DropdownItem对象。每个DropdownItem包含一个名为'Item Background'的物体来控制背景颜色。作者展示了重写后的Dropdown组件效果,并欢迎读者分享更优实现方式。
摘要由CSDN通过智能技术生成

效果:实现下拉框每个下拉框显示不同的颜色


分析Dropdown组件

当点击拉框显示下拉列表之前,unity 会调用DropDown里面的CreateItem的方法返回DropdownItem对象,显示在界面上,构成下拉框的每一个选项,显示的下拉列表。

如下图:

275fba45caec2320b75ef1357f96f488.png

这里每一个下拉框选项是DropdownItem对象,界面上Item 对应此对象。

而每一个下拉框选项(item)都是一样的结构。

如下图:

d5bcb8f274fca25ecacc8c39e5732786.png

控制背景颜色的物体为 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;
    }
}

效果如下:

59f7abbbb60692d283ae5cc8f16523cd.png

由于作者技术水平有限,目前想到实现此效果的办法只有这种,若有您有更好的办法,还请不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值