Unity3d 扩展自定义类Inspector

public class MyClass : MonoBehaviour {

    public int A;

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
    
    }
}
using UnityEngine;
using System.Collections;
using UnityEditor;

[CanEditMultipleObjects()]
[CustomEditor(typeof(MyClass), true)]
public class MyClassEditor : Editor
{

	SerializedProperty A;

	// Use this for initialization
	void Start () {
	
	}
	
	void OnEnable()
	{
		this.A = base.serializedObject.FindProperty("A");
	}

	// Update is called once per frame
	public override void OnInspectorGUI()
	{
		//base.DrawDefaultInspector();

		serializedObject.Update();

		EditorGUILayout.PropertyField(A);


		EditorGUILayout.BeginHorizontal();
		if (GUILayout.Button("Set 10", GUILayout.Width(60)))
		{
			(target as MyClass).A = 10;
		}

		else if (GUILayout.Button("Set 20", GUILayout.Width(60)))
		{
			(target as MyClass).A = 20;
		}
		EditorGUILayout.EndHorizontal();
	}
}

  

原文地址:https://www.cnblogs.com/mrblue/p/4661489.html