自定义绘制流程
1. 创建两个类 分别继承于MonoBehaviour,Editor
2. 继承Editor的 需在类名上上加[CustomEditor(typeof(继承MonoBehaviour的类))]的属性
3. 重写 OnInspectorGUI函数 即可开始自定义绘制(以下代码为最基本结构)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; public class BaseUI : MonoBehaviour { public int id; public new string name; } [CustomEditor(typeof(BaseUI))] public class BaseUIEditor : Editor { private BaseUI ui; private void Awake() { ui = target as BaseUI; } public override void OnInspectorGUI() { //默认绘制 base.OnInspectorGUI(); //自定义绘制 } } |
自定义绘制功能
1.简单功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //自定义绘制 EditorGUILayout.Space(); //空行 EditorGUILayout.LabelField("以下为自定义绘制"); //绘制文本 EditorGUILayout.BeginHorizontal(); //开始水平布局 EditorGUILayout.LabelField("Id"); ui.id = EditorGUILayout.IntField(ui.id); //绘制可输入框(Int类型) EditorGUILayout.EndHorizontal(); //结束水平布局 EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Name"); ui.name = EditorGUILayout.TextField(ui.name); //绘制可输入框(string类型) EditorGUILayout.EndHorizontal(); if (GUILayout.Button("点击按钮")) //绘制按钮(点击按钮时会返回true) { } |