我们如何为 Unity 组件类创建编辑器脚本



大家可能知道,我们可以为单行为类创建编辑器脚本。

我想有能力为组件制作编辑器。可能吗?

编辑 1

我不是在问Monobehavior编辑器类,而是在问组件类。

编辑 2

我说的是完全通过编辑器扩展组件类。准确地为"组件"编写编辑器,以便能够为转换组件,刚体组件等制作自定义检查器

我想您正在寻找的是一种覆盖默认 Unity 组件编辑器脚本的方法(MonoBehaviour脚本基本上是您创建的组件(。我建议使用第一种方法:

  • 如果只想完全更改 Unity 组件的显示方式,则可以创建一个派生自要更改的组件的新类,并将其编写为自定义检查器:

    using UnityEngine;
    #if UNITY_EDITOR
    using UnityEditor;
    #endif
    public class YOUR_CLASS_NAME : THE_CLASS_YOU_DERIVE_FROM
    {
    }
    #if UNITY_EDITOR
    [CustomEditor(typeof(YOUR_CLASS_NAME))]
    public class YOUR_CLASS_NAME_CUSTOM_EDITOR : Editor
    {
        public override void OnInspectorGUI()
        {
            // If you want to display THE_CLASS_YOU_DERIVE_FROM as it is usually on the inspector (doesn't completely work with some components that have "complex" editor)
            base.OnInspectorGUI();
            // Otherwise feel free to do what you want
        }
    }
    #endif
    

请注意,您也可以使用 2 个脚本(只需不要忘记将编辑器放在 .../Editor/... 文件夹下:)

  • 请记住,如果这不是为了覆盖 Unity 默认组件,您还可以使用 PropertyDrawers 更改序列化属性在检查器中的显示方式。您可以查看此链接以获取更多信息。

希望这有帮助,

最新更新