【表面上是插件,其实它是 Unity 开发者的刮胡刀,工具箱大更新,架构重写】 https://www.bilibili.com/video/BV1dnigBLEbc/?share_source=copy_web&vd_source=2cb1a5658a3ccf09b304d890a043976d
- ✅ 引入
ToolModule抽象基类,统一所有功能模块接口 - ✅ 实现
ToolContext上下文系统,解耦 Unity API 依赖 - ✅ 添加
ToolRegistry自动注册系统,新模块自动发现无需手动注册 - ✅ UI 与逻辑完全分离,所有业务逻辑放在
*Logic.cs,UI 放在*Module.cs - ✅ 支持模块生命周期管理(
OnInitialize、OnCleanup) - ✅ 模块按分类(Category)自动分组显示
- ✅ 兼容旧版模块系统,平滑迁移
- ✅ 支持创建场景状态快照,保存 GameObject 位置、旋转、缩放等完整状态
- ✅ 一键回滚到任意历史快照
- ✅ 快照对比功能,可视化显示两个快照之间的差异
- ✅ 支持快照命名和描述
- ✅ 异步回滚机制,大场景回滚时显示进度条
- ✅ 自动检测代码编译状态
- ✅ 编译完成后自动重载场景(可选)
- ✅ 编译统计信息显示(编译次数、总耗时、平均耗时)
- ✅ 支持 Unity 2021.2+ 版本
- ✅ 可配置的自动重载策略
- ✅ 扫描项目中未被场景/Prefab 引用的资产
- ✅ 智能区分:未引用 / 仅编辑器引用 / 仅测试引用 / 运行时引用
- ✅ 白名单机制,保护重要资产不被误删
- ✅ 批量删除未使用资产(带预览)
- ✅ 搜索过滤功能,快速定位目标资产
- ✅ 统计场景编辑时间,记录每次编辑会话
- ✅ 烘焙耗时历史记录,追踪每次烘焙的耗时
- ✅ 常用工具使用排行,了解最常用的功能
- ✅ 最慢操作记录,识别性能瓶颈
- ✅ 多标签页界面,数据分类展示
- ✅ 可拖拽的桌面宠物窗口
- ✅ 宠物动画播放(待机、说话动画)
- ✅ 点击互动,显示提示信息
- ✅ 右键关闭功能
- ✅ 窗口位置自动保存
- ✅ 在 Project 窗口中显示资产预览图标
- ✅ 增强 Hierarchy 窗口显示效果
- ✅ 自定义图标和颜色标记
- ✅ 分析资产的引用关系
- ✅ 查找资产的所有依赖项
- ✅ 可视化依赖图
- ✅ 工具栏添加搜索框,实时过滤模块
- ✅ 支持按模块名称搜索
- ✅ 搜索时高亮匹配结果
- ✅ 工具栏添加统计按钮
- ✅ 显示模块总数、分类统计
- ✅ 显示工具使用频率统计
- ✅ 支持双列响应式布局(窗口宽度超过阈值时自动切换)
- ✅ 可配置的双列布局阈值
- ✅ 模块按分类折叠/展开
- ✅ 支持自动/亮色/暗色主题切换
- ✅ 根据 Unity 编辑器主题自动适配
- ✅ 主题设置持久化保存
- ✅
EditorSelectionUtil:封装 Selection 操作 - ✅
AssetUtil:封装 AssetDatabase 操作 - ✅
UndoUtil:封装 Undo 操作 - ✅
ToolboxSettings:统一设置管理
- 使用
TypeCache.GetTypesDerivedFrom<ToolModule>()自动发现模块 ToolContext封装 Unity API,便于测试和复用- 模块包装器(
ModuleWrapper)统一新旧系统接口 - 支持模块分类和排序
- 模块展开状态保存到
EditorPrefs - 分类展开状态单独保存
- 主题和布局设置持久化
- 模块按需初始化,延迟加载
- 搜索过滤使用 LINQ,性能优化
- 异步操作使用协程,避免阻塞主线程
- ✅ 所有功能模块默认折叠状态,节省界面空间
- ✅ 点击模块标题栏左侧的折叠按钮可展开/折叠
- ✅ 折叠状态自动保存,下次打开窗口时恢复
- ✅ 拖拽时自动禁用折叠按钮,避免冲突
- ✅ 支持通过拖拽重新排列功能模块顺序
- ✅ 拖拽手柄图标(网格图标或三条横线)位于模块标题栏中间
- ✅ 拖拽时显示视觉反馈:
- 被拖拽的模块高亮显示
- 目标位置显示蓝色插入指示线
- ✅ 模块顺序自动保存到 EditorPrefs,下次打开时恢复
- ✅ 拖拽后标题序号自动更新(如:拖拽后 "1. 智能批量材质生成" 变为 "2. 智能批量材质生成")
- ✅ 添加安全的图标加载方法
GetIconSafely(),避免警告信息 - ✅ 支持多个备选图标名称,提高兼容性
- ✅ 图标加载失败时自动绘制备用拖拽手柄(三条横线)
- ✅ 临时禁用警告日志,避免控制台污染
- ✅ 调整模块间距,使界面更紧凑(用户可自定义)
- ✅ 优化标题栏布局和字体大小
- ✅ 改进拖拽手柄的视觉反馈(悬停时高亮)
- ✅ 改进拖拽事件处理逻辑,确保拖拽功能稳定可靠
- ✅ 优化事件处理顺序,避免折叠按钮和拖拽功能冲突
- ✅ 添加鼠标移出窗口时的状态重置
- ✅ 修复拖拽功能无法正常工作的问题
- ✅ 修复图标加载时的警告信息
- ✅ 修复拖拽后标题序号不更新的问题
- ✅ 修复模块间距过大导致界面浪费空间的问题
- 重构模块系统,使用
ModuleInfo类统一管理模块信息 - 将模块绘制逻辑拆分为独立的
DrawModule1()到DrawModule12()方法 - 添加
InitializeModules()方法统一初始化模块系统 - 添加
HandleGlobalDragEvents()统一处理拖拽结束事件
- 模块顺序保存到
EditorPrefs(键名:UnityProToolbox_ModuleOrder) - 每个模块的折叠状态单独保存(键名:
UnityProToolbox_ModuleExpanded_{模块ID})
- 智能批量材质生成
- 物理对齐
- 批量重命名
- 资产替换
- 布局助手
- 随机变换
- 系统清理
- 快速对齐与等距分布
- 批量静态设置
- 查找重复物体
- 烘焙精度双档切换(增强版)
- 快速创建助手
点击模块标题栏左侧的折叠按钮(三角形图标)
- 将鼠标移到模块标题栏中间的拖拽手柄上(网格图标或三条横线)
- 按住鼠标左键并拖动
- 拖动到目标位置后释放鼠标
- 模块会自动移动到新位置,标题序号也会自动更新
如需调整模块间距,可修改 DrawDraggableModule() 方法中的 EditorGUILayout.Space() 参数值
开发者: RepinSKY
版本: v2.0
最后更新: 2025-12-31