BatchImportUnityPackages
- Digital0 JPY

# Unity 批量导入工具 (Batch Import UnityPackages) 一个强大的 Unity 编辑器扩展工具,用于批量导入多个 `.unitypackage` 文件,并自动将它们组织到指定的目标文件夹中。 ## 功能特性 - **批量导入**: 一次性导入多个 `.unitypackage` 文件,无需手动逐个操作 - **自动组织**: 自动为每个包创建独立的文件夹,保持项目结构整洁 - **子文件夹搜索**: 可选择是否包含子文件夹中的包文件 - **静默导入模式**: 自动以静默模式导入,避免弹窗中断 - **智能移动**: 导入后自动将资源移动到目标文件夹,并保留原有的子目录结构 - **空文件夹清理**: 自动清理导入后遗留的空文件夹 - **进度显示**: 实时显示导入进度和详细日志 - **错误处理**: 完善的错误处理机制,支持导入失败后继续或停止 - **重复导入处理**: 正确处理重复导入的包,不会卡死 - **自动更新检查**: 启动时自动检查 GitHub 最新版本并提示更新 ## 使用方法 ### 打开工具 导入后,在 Unity 编辑器菜单栏中选择:**Tools > Batch Import UnityPackages** ### 配置选项 1. **包所在文件夹**: 选择包含 `.unitypackage` 文件的文件夹路径 - 点击"浏览"按钮选择文件夹 2. **导入目标文件夹**: 设置导入后资源的存放位置(必须在 `Assets` 目录下) - 默认路径为 `Assets/Imported` - 点击"浏览"按钮选择目标文件夹 3. **包含子文件夹**: 勾选后会搜索源文件夹下所有子文件夹中的包文件 ### 开始导入 1. 配置好所有选项后,点击"开始导入"按钮 2. 确认导入的包数量 3. 等待导入完成 ## 工作流程 1. **扫描文件**: 扫描指定文件夹(及子文件夹)中的所有 `.unitypackage` 文件 2. **创建文件夹**: 为每个包在目标文件夹下创建独立的子文件夹 3. **导入资源**: 依次导入每个包 4. **移动资源**: 将导入的资源移动到对应的目标文件夹,保留原有目录结构 5. **清理空文件夹**: 删除移动后遗留的空文件夹 6. **刷新资源库**: 完成后刷新 Unity 资源数据库 ## 文件夹命名规则 - 每个包会根据其文件名创建对应的文件夹 - 特殊字符会被替换为下划线 `_` - 例如:`Material Pack V1.0.unitypackage` → `Material_Pack_V1_0` 文件夹 ## 错误处理 ### 导入失败 - 工具会显示错误信息 - 询问是否继续导入剩余的包 - 可以选择"继续"或"停止" ## 控制台日志 工具会在 Unity 控制台输出详细的导入日志: - 📦 开始批量导入 - ▶️ 正在导入包 - ✅ 导入成功 - ❌ 导入失败 - ⚠️ 警告信息 - 🗑️ 清理空文件夹 - ⏸️ 导入已停止 ## 自动更新功能 工具内置了自动更新检查功能,帮助您及时获取最新版本: ### 功能特性 1. **启动时自动检查**:首次打开工具窗口时会自动检查 GitHub 上的最新版本(静默检查,不打扰工作流程) 2. **更新提示**:如果发现新版本,会在窗口顶部显示绿色的更新提示按钮 3. **手动检查**:点击窗口底部的 "🔄 检查更新" 按钮可随时手动检查更新 4. **一键跳转**:点击更新提示按钮或 GitHub 仓库按钮可直接跳转到下载页面 ## 注意事项 1. **目标文件夹必须在 Assets 目录下**,否则会提示错误 2. **导入前请备份项目**,以防意外情况 3. **静默导入模式**:由于 Unity API 限制,工具强制使用静默导入以避免重复导入时卡死的问题 4. **大量包导入**可能需要较长时间,请耐心等待 5. 工具会自动处理文件移动,请勿在导入过程中手动操作资源 6. **自动更新检查**:工具会在启动时自动检查 GitHub 上的最新版本,如有新版本会在界面顶部显示更新提示 ## 系统要求 - Unity 编辑器(支持 Unity 2019 及以上版本) - Windows/macOS/Linux ## 技术特点 ### 智能资源移动 - 自动检测导入前后的资源变化 - 计算新增资源的共同根目录 - 保留原有的子文件夹结构 ### 队列式导入 - 使用队列管理待导入的包 - 通过回调机制处理导入完成、失败和取消事件 - 避免并发导入导致的冲突 ### 自动清理 - 递归清理空文件夹 - 从最深层开始清理,避免遗漏 - 同时清理 `.meta` 文件 ## 作者 VRC: -无言- ## 许可证 本工具为开源工具,可自由使用和修改。 ## 更新日志 ### v1.2.0 - 📝 重构优化脚本结构 - ✨ 添加断点续传功能,允许在导入被中断时保存进度,并在下次启动时恢复 ### v1.1.1 - 🐛 修改文件结构避免与VRCSDK冲突 ### v1.1.0 - ✨ 新增自动更新检查功能 - ✨ 添加 GitHub 仓库链接按钮 - ✨ 启动时自动检查最新版本 - ✨ 手动检查更新按钮 - 🐛 修复非静默模式下重复导入卡死的问题 - 📝 改进 UI 显示,添加版本号显示 - 📝 优化更新提示界面 ### v1.0.0 - 🎉 初始版本发布 - ✨ 支持批量导入 UnityPackage - ✨ 支持自动组织和清理功能