Unity编辑器——使用OnInspectorGUI方法添加Unity默认组件编辑方式

看了雨凇大佬的添加默认组件编辑方式的方法,编写了以下工具框架,我们可以通过对基础控件的变换设置,使得在编辑器中的编辑不用那么费劲一点一滴去调试位置、大小等参数,直接设置自定义按钮

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;

/// 
/// 创建组件编辑器基类
/// 
public class EditorNormalCompoment : Editor
{
    public override void OnInspectorGUI()
    {
        base.DrawDefaultInspector();
        if (GUILayout.Button("SetPos"))
        {
            DOMove();
        }
    }

    public virtual void DOMove() { }

    public virtual void DOScale() { }

    public virtual void DORotate() { }

}

[CanEditMultipleObjects()]
[CustomEditor(typeof(Camera), true)]
public class CameraEditor : EditorNormalCompoment          //继承组件编辑器基类,重写方法
{
    public override void DOMove()
    {
        base.DOMove();
        Camera camera = target as Camera;
        camera.transform.position += Vector3.up * 10;
    }

    public override void DOScale()
    {
        base.DOScale();
    }

    public override void DORotate()
    {
        base.DORotate();
    }

    private void DODepth()
    {

    }
}

[CanEditMultipleObjects()]
[CustomEditor(typeof(ButtonEvent), true)]
public class ButtonEventEditor : EditorNormalCompoment        //继承组件编辑器基类,重写方法
{
    public override void DOMove()
    {
        base.DOMove();
        ButtonEvent button = target as ButtonEvent;
        button.transform.position += Vector3.down * 10;
    }

    public override void DORotate()
    {
        base.DORotate();
    }

    public override void DOScale()
    {
        base.DOScale();
    }

    private void DONormalColor()
    {

    }

    private void DOClickColor()
    {

    }
}

你可能感兴趣的:(C#,Unity)