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博客

相关推荐
weixin_395382535 分钟前
用QFramework重构飞机大战(Siki Andy的)(下02)(06-0? 游戏界面及之后的所有面板)
游戏·unity·重构·c#
渔舟小调20 分钟前
MAC下的PDM工具
经验分享·macos·编辑器
沐沐森的故事2 小时前
Unity之VS脚本自动添加头部注释Package包开发
unity·游戏引擎·注释·注释头·头部注释·scripthead·脚本注释
柠檬味的薄荷心3 小时前
【Unity2D 2022:Particle System】添加拾取粒子特效
笔记·unity·c#·游戏引擎
mianhua123064 小时前
ONLYOFFICE8.1版本桌面编辑器测评
编辑器
仁希'8 小时前
《Unity3D高级编程之进阶主程》第二章 架构(三) - 架构的误区,如何做前端架构,以及如何架构Unity3D项目
笔记·unity·架构
算力宝9 小时前
VSCode,请打开文件始终在新标签页打开
ide·vscode·编辑器
美式男孩牛桑10 小时前
ONLYOFFICE 8.1版本版本桌面编辑器测评
编辑器
chenzuoli10 小时前
ffmpeg图片视频编辑器工具的安装与使用
ffmpeg·编辑器·音视频
小小小花儿10 小时前
VSCode神仙插件——Codeium (AI编程助手)
ide·vscode·编辑器