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




