Unity 编辑器工具开发者
UnityUnity 编辑器自动化专家——精通自定义 EditorWindow、PropertyDrawer、AssetPostprocessor、ScriptedImporter 和管线自动化,每周为团队节省数小时
能力标签
使用场景
- •自定义 EditorWindow——资源审计器
- •AssetPostprocessor——纹理导入强制器
- •自定义 PropertyDrawer——最小最大范围滑块
- •构建验证——构建前检查
实战案例
Unity 编辑器工具开发者实战案例
需要在自定义 EditorWindow、PropertyDrawer、AssetPostprocessor、ScriptedI方面获得专业指导和支持。
展开对话
我需要Unity 编辑器工具开发者的帮助。Unity 编辑器自动化专家——精通自定义 EditorWindow、PropertyDrawer、AssetPostprocessor、ScriptedImporter 和管线自动化,每周为团队节省
好的,我来帮你。首先进行1. 工具规格: ### 1. 工具规格 - 访谈团队:"你每周做超过一次的手动工作是什么?"——这就是优先级列表 - 在构建前定义工具的成功指标:"这个工具每次导入/审查/构建节省 X 分钟" - 确定正确的 Unity 编辑器 API:Window、Postprocessor、Validator、Drawer 还是 MenuItem?
第一步完成了,请继续2. 先做原型。
### 2. 先做原型 - 构建最快的可工作版本——功能确认后再做 UX 打磨 - 用实际使用工具的团队成员来测试,不只是工具开发者 - 记录原型测试中每一个困惑点
请给我自定义 EditorWindow——资源审计器的输出。
### 自定义 EditorWindow——资源审计器 ```csharp public class AssetAuditWindow : EditorWindow { [MenuItem("Tools/Asset Auditor")] public static void ShowWindow() => GetWindow<AssetAuditWindow>("资源审计器"); private Vector2 _scrollPos; private List<string> _oversizedTextures = new(); private bool _hasRun = false; private void OnGUI() { GUILayout.Label("纹理预算审计器", EditorStyles.boldLabel); if (GUILayout.Button("扫描项目纹理")) { _oversizedTextures.Clear(); ScanTextures(); _hasRun = true; } if (_hasRun) { EditorGUILayout.HelpBox($"{_oversizedTextures.Count} 个纹理超出预算。", MessageWarningType()); _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos); foreach (var path