找回密码
 立即注册
查看: 363|回复: 0

unity编辑器拓展

[复制链接]
发表于 2022-5-11 10:52 | 显示全部楼层 |阅读模式
需求:重写 UGUI中 Toggle 类  MyToggle 使其添加一条属性Panel
代码:
using UnityEngine;using UnityEngine.UI;public class MyToggle : Toggle{    public Transform panel;}
创建MyToggleEditor脚本
using UnityEditor;using UnityEngine;//CustomEditor:允许我们自定义组件的Inspect检视面板[CustomEditor(typeof(MyToggle), true)] ///MyToggle 需要显示在Inspector的类//CanEditMultipleObjects:可多选编辑选中物体中该属性面板[CanEditMultipleObjects]//重写toggle则继承UnityEditor.UI.ToggleEditor toggle编辑类(公共类则继承对应公共类Editor,自定义类则继承Editor)public class MyToggleEditor : UnityEditor.UI.ToggleEditor{    SerializedProperty Panel;  // SerializedProperty 反射一个Unity对象    private void OnEnable()    {        base.OnEnable();        //FindProperty  CustomEditor指定的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);        }    }}
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 10:15 , Processed in 0.099033 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表