OnInspector
- MonoBehaviour与Editor代码写在一个文件中
- 几种修改内容的方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class SimpleScript : MonoBehaviour
{
public int num = 1;
public float value = 1;
}
#if UNITY_EDITOR
[CustomEditor(typeof(SimpleScript))]
public class SimpleScriptEditor : Editor
{
public override void OnInspectorGUI()
{
SimpleScript script = target as SimpleScript;
EditorGUI.BeginChangeCheck();
script.num = EditorGUILayout.IntField("num", script.num);
Undo.RecordObject(script, "Change Num");
if (EditorGUI.EndChangeCheck())
{
EditorUtility.SetDirty(script);
}
if (GUILayout.Button("Add Num"))
{
Undo.RecordObject(script, "Add Num");
script.num = script.num + 1;
EditorUtility.SetDirty(script);
}
SerializedProperty valueProp = serializedObject.FindProperty("value");
EditorGUILayout.PropertyField(valueProp);
serializedObject.ApplyModifiedProperties();
}
}
#endif
参考资料
- Unity 拓展编辑器入门指南.