编辑器扩展(一)Dropdown有不可选的选项

本文介绍如何通过Unity编辑器扩展实现Dropdown列表中包含不可选选项的功能。当群友询问如何使Dropdown选项变为灰色不可选时,作者发现Unity Dropdown无法直接设置,于是采用编写编辑器扩展脚本的方式,创建了一个新的Dropdown组件,允许在创建时指定默认不可选的选项。
摘要由CSDN通过智能技术生成

有不可选选项的Dropdown

前几日群里的小伙伴问道,如何让Dropdown下的选项不可选(变成灰色)。
最初直接想的是把ToggleInteractable设置成false就好了。
可是发现Unity的Dropdown没法获取物体。
好吧,我们可以用GetChild()方法进去找子物体的Toggle,可是太麻烦了。
所以干脆就变成做个编辑器扩展。

完成后的设置
DRDropdown

  • 其中Default Disable Options,就是在创建列表的时候默认为不可选的Index

完成后的截图
DRDropdown

在创建时,用Unity的Dropdown创建,然后删除Unity的Dropdown,再添加这个脚本。

Dropdown代码:

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

[AddComponentMenu("UI/DR DropDown")]
[RequireComponent(typeof(Image))]
public class DRDropDown : Dropdown
{
    /// <summary>
    /// 在添加Item时,不可用的Index,如果是动态添加的不同列表,可以在打开之前这个里改变值
    /// </summary>
    [SerializeField]
    [HideInInspector]
    private List<int> m_DefaultDisables = new List<int>();
    public List<int> disables
    {
        get { return m_DefaultDisables; }
    }

    /// <summary>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值