Unity 自定义编辑器根据枚举值显示变量

cs 复制代码
public class Test : MonoBehaviour
{
    [HideInInspector]
    [Header("数量")]
    [SerializeField]
    public int num;

    [Header("分布类型")]
    [SerializeField]
    public DistributionType distType;

    [HideInInspector]
    [Header("位置")]
    [SerializeField]
    public List<Vector3> positions;
}


public enum DistributionType
{
    None,
    test1,
    test2,
    test3,
}
cs 复制代码
[CustomEditor(typeof(Test))]
public class TestEditor : Editor {

    public SerializedObject obj;

    public SerializedProperty distType;
    public SerializedProperty positions;
    public SerializedProperty num;

    void OnEnable()
    {
        obj = new SerializedObject(target);
        distType = obj.FindProperty("distType");
        num = obj.FindProperty("num");
        positions = obj.FindProperty("positions");
    }

    public override void OnInspectorGUI()
    {
        //base.OnInspectorGUI();
        obj.Update();
        if (distType.enumValueIndex == 0)
        {
            EditorGUILayout.PropertyField(positions, true);
        }
        else
        {
            EditorGUILayout.PropertyField(num);
        }
        obj.ApplyModifiedProperties();

    }
}

在数据类中(文中是Test类)数组类的字段在开启基类的base.OnInspectorGUI();不能用[HideInInspector],否则会无法显示数组内容。

参考链接:

Unity 自定义inspector界面如何显示数组_360问答 (so.com)

Unity根据条件控制Inspector面板中的属性显示_unity inspect 条件控制-CSDN博客

相关推荐
心前阳光19 分钟前
Unity发布运行在PICO4的安卓程序
android·unity·游戏引擎
傅科摆 _ py23 分钟前
Vim 常用命令简要总结
linux·编辑器·vim
Jessica巨人1 小时前
pico相关插件介绍
unity
leo__5201 小时前
基于模糊控制的MATLAB避障算法实现
算法·matlab·unity
山峰哥15 小时前
数据库工程核心:SQL调优让查询效率飙升的实战密码
网络·汇编·数据库·sql·编辑器
好好学习啊天天向上17 小时前
VSCODE, mermaid subgraph 示例
ide·vscode·编辑器
好好学习啊天天向上17 小时前
VSCODE, mermaid 示例
ide·vscode·编辑器
zz_Lambda19 小时前
TeXstudio 等 (La)TeX 编辑器在没有发行版时不能运行 (La)TeX 命令
编辑器
向上的车轮21 小时前
VS Code在AI编辑器关键问题上处理如何?
人工智能·编辑器
山峰哥1 天前
SQL调优实战:让查询效率飙升10倍的降本密码
服务器·前端·数据库·sql·编辑器·深度优先