Unity编辑器实现枚举多选

news/2024/5/18 23:52:29 标签: Unity 枚举多选, 枚举多选, 枚举

简介:

在编辑器中,可以很简单的实现枚举的多选。

在脚本中自定义枚举属性

/// <summary>
/// 定义多选属性
/// </summary>
public class EnumMultiAttribute : PropertyAttribute { }

/// <summary>
/// 绘制多选属性
/// </summary>
[CustomPropertyDrawer(typeof(EnumMultiAttribute))]
public class EnumMultiAttributeDrawer : PropertyDrawer
{
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        property.intValue = EditorGUI.MaskField(position, label, property.intValue
                                                , property.enumNames);
    }
}

此时再需要多选的枚举上加上属性标签

/// <summary>
/// 测试枚举
/// </summary>
public enum EnumType
{
    One,
    Two,
    Three,
    Four
}


[Header("测试枚举")]
[EnumMultiAttribute]
public EnumType enumType;

编辑器中即可实现类似层级的多选效果

如果需要判断是否选中了某个枚举,需要位移操作

    //判断是否选择了该枚举值
    public bool IsSelectEnumType(EnumType type)
    {
        // 将枚举值转换为int 类型, 1 左移 
        int index = 1 << (int)type;
        // 获取所有选中的枚举值
        int eventTypeResult = (int)enumType;
        // 按位 与
        if ((eventTypeResult & index) == index)
        {
            return true;
        }
        return false;
    }

 


http://www.niftyadmin.cn/n/1150415.html

相关文章

Unity Shader Graph初次尝试

软件环境 Unity Version: 2018.1.2f1 边缘发光材质效果 创建工程 打开Unity并创建一个新工程 安装依赖项 Window -> Package Manager打开包管理器&#xff0c;安装二个依赖包&#xff1a; 1. Lightweight Render Pipeline 2. Shader Graph Lightweight Render Pipelin…

Commvault蔡报永:点亮你的暗数据

有一种说法&#xff0c;人类只要利用大脑的10%&#xff0c;就可以实现长生不老。即便在无数神经学家将其斥为胡编乱造的无稽之谈&#xff0c;多年以后&#xff0c;我们还是不会放弃这种念头&#xff0c;因为我们知道自身还有很多潜力没有发挥&#xff0c;只是有待发掘。同样&am…

Linux svn server 给指定文件夹设置相应的读写权限

简介&#xff1a; 在使用Linux搭建SVN服务器的时候&#xff0c;需要给仓库中不同的文件夹设置不同的权限。 1.在svn目录中有Dan和Mango两个文件夹 2.进入svn/conf目录下&#xff0c;使用vim命令 vi authz配置的authz权限 3.输入相应的指令 4.指令含义 [/] 为当前svn目录下…

决定搞一个云前需要跨过那些门槛?

计划搞一个云&#xff0c;需要克服那些门槛&#xff1a; 首先是人&#xff0c;人才是第一位的&#xff0c;云的技术含量非常高&#xff0c;需要经验丰富的i专业人才。 其次是资金&#xff0c;云初期投入非常巨大&#xff0c;而且是持续烧钱&#xff0c;盈利又很慢&#xff0c;没…

Unity 许可证 激活 License Error 无效

简介&#xff1a; 在使用Unity的时候&#xff0c;Personal版本可以使用Unity的大部分功能&#xff0c;在小规模开发的时候&#xff0c;已经完全足够&#xff0c;对于定制Unity游戏启动画面的Unity图标&#xff08;破解版除外&#xff09;&#xff0c;或者是需要游戏性能指标反…

《机器人编程实战》一一3.2 伪代码和绘制RSVP流程图

3.2 伪代码和绘制RSVP流程图流程图绘制是一个用来制定目标对整个系统控制流程的RSVP&#xff0c;是一个可以包括任何一种循环、选择或决策的指令行线性序列。通过使用表示某种工作类型的特殊框符号&#xff0c;流程图解释了这个过程。方框内显示的文本描述了一个任务、过程或指…

Unity LWRP详解

性能改进 image.png 性能对比 一键所有材质升级到LWRP 升级LWRP性能的对比 升级LWRP性能的对比2 第一组对比 Batches&#xff1a; 815 下降至 478 SetPass&#xff1a; 316 下降至 89 光照对比 左LWRP&#xff0c;右Built-In Renderer 光照渲染过程对比 LWRP&#xff1a;基本上…

中兴与广发证券50亿元设立产业基金 深入PPP合作

今日晚间&#xff0c;随同前三季财报&#xff0c;中兴通讯还对外宣布&#xff0c;携手广发证券发起设立广兴云合股权投资产业基金&#xff0c;金额高达50亿元。 根据协议&#xff0c;双方将共同探索智慧城市、数据中心和地下管网等政企业务领域的投融资合作。双方表示&#xff…