前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三、编辑器开发之CustomEditor

三、编辑器开发之CustomEditor

作者头像
CoderZ
发布2022-08-29 15:34:59
4990
发布2022-08-29 15:34:59
举报

CustomEditor特性,允许我们自定义组件的Inspect检视面板。

代码语言:javascript
复制
public CustomEditor (Type inspectedType);
public CustomEditor (Type inspectedType, bool editorForChildClasses);

param1: inspectedType 检视的类型,即自定义哪个类型的Inspector。

param2: editorForChildClasses 默认为false,为true时表明其子类使用同样的Inspector。

例如,我们创建一个Person组件:

代码语言:javascript
复制
using UnityEngine;

public class Person : MonoBehaviour
{
    public string Name;
    public int Age;
    public float Weight;
}

检视面板显示了Person组件中的三个公开字段:

接下来自定义该组件的检视面板,首先需要在Editor文件夹中创建一个PersonInspector.cs脚本

引入命名空间UnityEditor后,为该类添加CustomEditor特性,并继承Editor类:

代码语言:javascript
复制
using UnityEditor;

[CustomEditor(typeof(Person))]
public class PersonInspector : Editor {}

接下来重写OnInspectorGUI方法来自定义我们所需要的内容:

比如在面板上显示一个字符串:

代码语言:javascript
复制
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(Person))]
public class PersonInspector : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        GUILayout.Label("Editor Extension...");
    }
}

再比如在面板上添加一个按钮:

代码语言:javascript
复制
using UnityEngine; 
using UnityEditor;

[CustomEditor(typeof(Person))]
public class PersonInspector : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        GUILayout.Label("Editor Extension...");
        GUILayout.Button("Button");
    }
}

具体如何绘制自定义检视面板,例如添加Button、Toggle、Slider等元素,显示string、int、float、enum等字段,在后续文章中进行介绍。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档