本工具是一个 Unity 编辑器扩展,用于批量收集、管理和预览项目中的粒子特效预制体(Particle Prefab)。通过扫描指定目录下的预制体文件,开发者可以快速整理粒子资源,并在独立的预览场景中进行可视化预览,提升VFX资源的管理效率。
- 多路径扫描:支持配置多个扫描路径,可同时监控项目中的不同目录
- 自动识别:自动检测包含 ParticleSystem 组件的预制体(包括子对象中的粒子系统)
- 去重处理:确保扫描结果中每个预制体只出现一次
- 进度显示:显示扫描进度条,支持大型项目的批量处理
- 搜索过滤:支持按路径、文件名进行实时搜索
- 排序功能:可按预制体名称或路径进行升序/降序排列
- 分页显示:支持大量数据的分页浏览,可自定义每页显示数量
- 批量选择:支持单选、多选和全选操作
- 状态记忆:自动保存扫描结果和配置信息
- 独立预览场景:在独立场景中预览粒子效果,不影响当前工作场景
- 网格化布局:自动按网格排列粒子预制体,支持 XZ 平面和 XY 平面两种布局模式
- 可调间距:支持 1-100 单位的自定义间距调节
- 分页预览:预览场景支持分页显示(每页最多100个预制体)
- 自动聚焦:自动调整摄像机视角以合适方式显示所有预制体
- 独立控制窗口:单独的"Particle Preview"控制面板
- 一键播放:批量播放所有粒子系统
- 循环控制:可强制所有粒子系统进入循环播放模式
- 视觉辅助:可显示/隐藏间隔边框和名称标签
- Selection Outline:支持切换选择轮廓显示(兼容多版本Unity)
- 持久化配置:所有设置自动保存到配置文件
- 路径管理:支持添加、删除和修改扫描路径
- 偏好设置:记住用户的显示偏好和布局选择
将 Editor/ParticlePrefabCollector 文件夹及其所有内容复制到你的 Unity 项目的 Assets/Editor/ 目录下。
在 Unity 菜单栏选择:Tools → Particle → Prefab Collector
- 在"扫描路径"区域配置需要监控的文件夹
- 支持添加多个路径,点击"+"按钮添加新路径
- 修改路径后点击"保存路径设置"按钮
- 点击"重新收集"按钮开始扫描
- 工具会显示扫描进度和结果统计
- 扫描完成后显示所有找到的粒子预制体
- 在列表中选择需要预览的预制体(支持多选)
- 点击"预览"按钮进入预览模式
- 使用"Particle Preview"控制窗口进行各种操作
- 完成后点击"结束预览"返回正常编辑模式
- Windows:Windows 10/11(推荐)
- macOS:macOS 10.15 及以上
- 注意:本工具为Editor扩展,仅在Unity编辑器中运行
- 需要包含粒子系统的预制体文件
- 建议项目结构清晰,便于路径配置
- 支持任意项目规模,大型项目请耐心等待扫描完成
- 排列间隔:1-100单位可调,实时生效
- 垂直排列:切换XY平面(垂直)或XZ平面(水平)布局
- 网格排列:每行最多10个预制体,自动换行
- 一键播放:同时播放所有粒子系统
- 循环播放:强制所有粒子进入循环模式
- 重启播放:切换循环模式时自动重新播放
- 间隔边框:显示每个预制体的占用区域
- 名称标签:在Scene视图中显示预制体名称
- Selection Outline:高亮显示选中的对象(需Unity支持)
- 分批处理:支持大型项目的分批扫描
- 缓存机制:缓存搜索和排序结果减少重复计算
- 内存管理:及时清理预览场景资源
- Unity版本:支持Unity 2020.3及以上版本
- 跨平台:兼容Windows、macOS
- API适配:使用反射处理版本差异功能
- 自动保存:所有设置自动保存到ScriptableObject
- 项目级配置:配置文件与项目一起保存
- 设置恢复:重启Unity后自动恢复用户偏好
Editor/ParticlePrefabCollector/
├── ParticlePrefabCollectorWindow.cs # 主窗口界面和逻辑
├── ParticlePrefabPreviewControlWindow.cs # 预览控制窗口
├── ParticlePrefabPreviewSceneHelper.cs # 预览场景管理器
├── ParticlePrefabPreviewConfig.cs # 配置数据结构
├── ParticlePrefabScanResult.cs # 扫描结果数据结构
- ParticlePrefabCollectorWindow.cs:工具的主入口,负责UI渲染、用户交互、扫描逻辑和数据管理
- ParticlePrefabPreviewSceneHelper.cs:预览场景的管理器,处理预制体实例化、布局、播放控制等
- ParticlePrefabPreviewControlWindow.cs:独立的预览控制面板,提供预览操作界面
- ParticlePrefabPreviewConfig.cs:可持久化的配置类,保存用户偏好设置
- ParticlePrefabScanResult.cs:扫描结果的数据容器,记录扫描路径和结果
本项目采用开源许可证,详见 LICENSE 文件。
欢迎为本项目贡献代码、报告问题或提出改进建议:
- 报告问题:在GitHub上提交Issue,详细描述问题和复现步骤
- 功能建议:提出新功能想法或改进建议
- 代码贡献:Fork项目,创建分支,提交Pull Request
- 文档改进:帮助完善文档和使用说明
如有使用问题或技术疑问,可通过以下方式获得帮助:
- 在GitHub Issues中搜索相关问题
- 提交新的Issue描述具体问题