扩展自定义类在Inspector面板的显示/在Inspector面板显示自定义类方法

发表于2018-12-04
评论0 2.7k浏览

一、

简单一点的方法,给类方法添加 [ContextMenu("")] 标记,添加完成后,在Inspector面板的该脚本组件下,右键弹出菜单,可在编辑器环境调用该方法

public class InspectorEditorTest : MonoBehaviour
{
    [SerializeField] string outPutStr;
    //在Inspector面板的该脚本组件, 添加该方法到右键菜单, 在编辑器环境调用该方法 
    [ContextMenu("My Func", false)]
    public void TestFunc()
    {
        Debug.Log("test string : " + outPutStr);
    }
}


二、

通过Editor扩展Inspector面板,在面板值直接显示调用按钮,点击按钮执行方法

using UnityEngine;
using UnityEditor;
//扩展InspectorEditorTest类在Inspector面板的显示内容
[CustomEditor(typeof(InspectorEditorTest))]
public class InspectorEditor : Editor
{
    //重写OnInspectorGUI类(刷新Inspector面板)
    public override void OnInspectorGUI()
    {
        //继承基类方法
        base.OnInspectorGUI();
        //获取要执行方法的类
        InspectorEditorTest targetScript = (InspectorEditorTest)target;
        //绘制Button
        if (GUILayout.Button("My Func"))
        {
            //执行方法
            targetScript.TestFunc();
        }
    }
}
public class InspectorEditorTest : MonoBehaviour
{
    [SerializeField] string outPutStr;
    ////在Inspector面板的该脚本组件, 添加该方法到右键菜单, 在编辑器环境调用该方法 
    //[ContextMenu("My Func", false)]
    public void TestFunc()
    {
        Debug.Log("test string : " + outPutStr);
    }
}

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: