You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Unity中如何实现自动添加自定义编辑器的快捷方式?

解决Unity快速创建自定义编辑器的痛点

完全懂这种被重复步骤折磨的感觉!Unity自带的资源上下文菜单确实藏了不少实用快捷操作,但偏偏漏掉了快速创建自定义编辑器脚本这个刚需功能。每次要做自定义编辑器,都得走一遍繁琐到离谱的流程:

  • 先检查项目里有没有Editor目录,没有还得手动新建
  • 进到对应子目录选Create -> C# Script(说实话这个选项叫“C# Component Script”才更贴合实际用途)
  • 删掉自动生成的所有MonoBehavior相关代码
  • 给类名手动加上Editor后缀
  • 添上using UnityEditor;命名空间
  • 最后还要给类加上[CustomEditor(typeof(目标类))]特性

这些重复机械的步骤,在你要给多个组件写自定义编辑器的时候,真的特别浪费时间。

如果你想自己补上这个快捷功能,可以写个简单的编辑器扩展脚本放在Editor目录下,代码示例如下:

using UnityEditor;
using UnityEngine;

public static class CustomEditorCreator
{
    [MenuItem("Assets/Create/C# Custom Editor Script", false, 80)]
    public static void CreateCustomEditorScript()
    {
        // 获取选中的目标组件脚本(如果有选中的话)
        var selectedObject = Selection.activeObject;
        string targetClassName = "YourTargetComponent";
        
        if (selectedObject is MonoScript monoScript)
        {
            targetClassName = monoScript.GetClass().Name;
        }

        // 生成自定义编辑器模板代码
        string template = $@"using UnityEditor;
using UnityEngine;

[CustomEditor(typeof({targetClassName}))]
public class {targetClassName}Editor : Editor
{{
    public override void OnInspectorGUI()
    {{
        base.OnInspectorGUI();
        // 在这里添加你的自定义编辑器逻辑
    }}
}}";

        // 创建脚本文件到项目中
        ProjectWindowUtil.CreateScriptAssetFromTemplateFile(template, $"{targetClassName}Editor.cs");
    }
}

这个脚本会在Assets菜单下新增一个「C# Custom Editor Script」选项,如果你选中了某个组件脚本,它还能自动填充目标类名,省去手动修改的麻烦。


内容的提问来源于stack exchange,提问作者Domi

火山引擎 最新活动