unityloverz 发表于 2022-5-11 10:52

unity编辑器拓展

需求:重写 UGUI中 Toggle 类MyToggle 使其添加一条属性Panel
代码:
using UnityEngine;using UnityEngine.UI;public class MyToggle : Toggle{    public Transform panel;}
创建MyToggleEditor脚本
using UnityEditor;using UnityEngine;//CustomEditor:允许我们自定义组件的Inspect检视面板 ///MyToggle 需要显示在Inspector的类//CanEditMultipleObjects:可多选编辑选中物体中该属性面板//重写toggle则继承UnityEditor.UI.ToggleEditor toggle编辑类(公共类则继承对应公共类Editor,自定义类则继承Editor)public class MyToggleEditor : UnityEditor.UI.ToggleEditor{    SerializedProperty Panel;// SerializedProperty 反射一个Unity对象    private void OnEnable()    {      base.OnEnable();      //FindPropertyCustomEditor指定的GameObject脚本(MyToggle)中获取对象(Panel)以在检查器中显示。      Panel = serializedObject.FindProperty("Panel"); //查找到MyToggle中的Panel    }    public override void OnInspectorGUI()    {      base.OnInspectorGUI();      serializedObject.Update();      EditorGUILayout.PropertyField(Panel);      serializedObject.ApplyModifiedProperties();      if (GUI.changed)      {            EditorUtility.SetDirty(target);      }    }}
页: [1]
查看完整版本: unity编辑器拓展