Unity Editor 工具:Scene 场景维护库
一、开发背景
随着项目持续迭代,Unity 工程中的 Scene 数量会越来越多。场景通常散落在不同目录中,仅依靠 Project 窗口查找,会逐渐出现以下问题:
- 场景数量多,名字相似,很难快速找到目标界面。
- 只看场景文件名无法判断具体用途,需要反复打开确认。
- 横版、竖版、活动、弹窗等不同场景混在一起,缺少统一分类。
- 制作人员之间缺少对场景用途和修改内容的备注记录。
- Unity 默认无法直接展示 UI 场景的真实界面预览。
- 打开大量场景进行确认会打断当前工作,查找成本较高。
因此制作了一个独立的 Unity Editor 场景维护库,把项目内分散的 Scene 集中展示,并提供版本、分类、备注、历史记录和缩略图预览等功能。
二、工具定位
核心目标是:不必逐个打开场景,也能快速知道场景是什么、放在哪里、属于什么版本和分类,以及以前填写过哪些备注,多人维护场景备注记录。
三、主要功能

1. 独立场景维护窗口
通过 Unity 顶部菜单打开:
Tools/P_拼接小工具/Scene场景维护库
窗口为非模态 EditorWindow,可以停靠、缩放,也不会阻塞 Unity 的其他操作。
2. 自定义场景索引目录
脚本顶部的 RootPath 是首次使用时默认扫描的场景目录:
private const string RootPath = "Assets/Scenes";
也可以在窗口左下角点击“添加索引目录”,添加一个或多个项目内目录。工具只扫描配置目录中的 .unity 场景,避免无目的遍历整个项目。
3. 版本管理
左侧“版本”模块用于区分横版、竖版、竖版 V2、待确认等场景集合。
- 支持新增自定义版本。
- 支持重命名和删除自定义版本。
- 支持拖动分隔条调整模块高度。
- 支持右键场景修改版本。
代码内部仍沿用原来的 Layout 字段,以兼容已经保存的配置数据;界面显示统一使用“版本”。
4. 分类管理
分类完全由使用者维护,可根据实际业务创建“弹窗、活动、赛季、战斗”等分类。
- 支持新增、重命名、删除一级分类。
- 支持在一级分类下创建子分类。
- 支持折叠分类节点。
- 支持右键场景修改分类。
- 分类数量会随着当前版本筛选结果更新。
5. 列表与图标模式
右下角可以切换两种显示方式:
- 列表模式:适合一次浏览大量场景,显示名称、版本、分类和备注。
- 图标模式:适合通过缩略图快速辨认 UI 场景。
缩放滑杆采用类似 Unity Project 窗口的逻辑:拖到最左侧进入列表模式,向右拖动切换到图标模式并连续调整缩略图尺寸。
6. 文件夹分组
点击顶部“文件夹分组”后,会按照场景所在目录进行排序和分组。
- 每个文件夹显示为一组。
- 点击文件夹标题可以折叠或展开。
- 列表模式和图标模式均支持文件夹分组。
7. 模糊搜索
搜索同时匹配场景名称和备注内容,并对输入进行统一处理:
- 不区分大小写。
- 可忽略
_等常见分隔符。 - 支持输入多个关键词进行筛选。
- 可以根据备注中的策划描述、版本号或功能关键词找到场景。
例如输入 mail v2,可以匹配名称或备注中同时包含相关关键词的场景。
8. 场景备注
选中场景后,底部详情区域会显示完整信息,并可点击“修改描述”填写多行备注。
- 长文本自动换行。
- 内容过多时可以滚动。
- 卡片中的备注过长会显示省略号。
- 鼠标悬停可以查看完整内容。
9. 历史描述记录
每次确认修改备注时,旧备注和修改时间会自动加入历史记录。
- 点击“历史描述”打开独立窗口。
- 最新记录显示在最上方。
- 历史正文支持鼠标局部选中和复制。
- 每条历史记录右侧可以单独删除。
- 历史数据随配置 asset 一起保存。
- 删除历史后仍需点击主窗口顶部“保存配置文件”。
10. 场景缩略图
工具可以从场景中提取顶层 Canvas,复制到临时 WorldSpace Canvas,并通过临时相机渲染为 PNG。
预览尺寸默认是:
1080 × 1920
顶部“预览宽×高”按钮可以修改临时画布尺寸,横屏场景可以改为 1920 × 1080。
预览图仅缓存在:
Library/SceneLibraryPreviews
该目录属于本地缓存,不会作为正式 Unity 资源提交。点击缩略图可以打开单独的预览窗口,窗口会居中显示,并尽量利用可用空间等比例展示图片。
11. 批量生成预览图
“一键生成预览图”会对当前筛选结果逐个生成或刷新缩略图。
为了减少对日常 Unity 操作的影响:
- 每次只处理一个场景。
- 两次任务之间留有时间间隔。
- 场景库窗口失去焦点时暂停队列。
- 用户正在拖动控件或编辑文本时暂停队列。
- 重新聚焦场景库后继续生成。
- 可以随时点击“停止生成”。
需要注意:打开场景和 Camera.Render 都属于 Unity 主线程操作,单张图片的渲染过程仍然是同步的。建议在不进行重要场景编辑时批量生成。
12. 场景右键菜单
右键场景可以执行:
- 打开场景。
- 定位资源。
- 打开场景所在文件夹。
- 重命名资源。
- 修改版本。
- 修改分类。
- 清除覆盖配置。
四、配置文件
分类、版本、备注、历史记录、隐藏状态和扫描目录等数据保存在 SceneLibraryOverrides.asset 中。
配置文件默认与 SceneLibraryOverrides.cs 脚本保存在同一目录,便于复制工具时一起迁移。
- 顶部配置按钮可以切换其他配置。
- 可以从当前配置复制一份新配置。
- 可以定位当前配置文件。
- 修改后顶部会显示“待保存”。
- 如果把内容改回保存前的状态,“待保存”会自动取消。
- 配置文件被手动删除后,回到 Unity 会在脚本旁自动生成新的默认配置。
预览 PNG 不写入配置 asset,也不会放入 Assets。
五、安装方式
- 将
SceneLibraryOverrides.cs放入 Unity 项目的任意Assets/**/Editor目录。 - 等待 Unity 编译完成,并确认 Console 没有红色编译错误。
- 根据项目情况修改脚本顶部的
RootPath。 - 通过
Tools/P_拼接小工具/Scene场景维护库打开工具。 - 也可以打开窗口后使用“添加索引目录”维护多个场景目录。
该工具使用 Unity 原生 Editor API、UGUI 和 IMGUI,不依赖第三方插件。
六、推荐使用流程
- 配置需要扫描的场景目录。
- 点击刷新,建立场景索引。
- 创建项目需要的版本和分类。
- 给常用场景设置版本、分类和备注。
- 切换到图标模式,生成场景预览图。
- 通过名称或备注快速检索目标场景。
- 修改结束后点击“保存配置文件”。
七、适用场景
- UI 场景数量较多的中大型 Unity 项目。
- UI 拼接、美术、程序和策划共同维护界面的项目。
- 需要按横竖版、系统、活动或版本整理 Scene 的项目。
- 希望通过缩略图而不是文件名识别 UI 场景的团队。
八、注意事项
- 预览生成依赖场景中存在可渲染的 Canvas 和 UGUI Graphic。
- 由运行时代码、Lua、动画触发器或特殊渲染管线控制的内容,编辑器预览可能和游戏运行结果不同。
- 预览过程中不会永久修改原场景,临时对象和临时打开的场景会在结束后清理。
Library/SceneLibraryPreviews被删除后可以重新生成。- 场景数量特别多时,建议缩小扫描目录,并利用版本、分类和文件夹分组过滤后再批量生成。
- 配置修改必须点击“保存配置文件”后才会真正写入磁盘。
九、总结
Scene 场景维护库把原本分散在 Project 窗口中的场景,整理成一个可检索、可分类、可备注、可追溯、可预览的资料库。它不改变原有场景制作流程,主要减少“找场景、辨认场景、确认用途、重复打开场景”的时间成本,适合作为 Unity UI 生产流程中的辅助管理工具。
