1. 项目背景与需求解析
在游戏开发团队协作中,Unity工程打包后的产物管理一直是个容易被忽视却影响效率的关键环节。我们团队最近就遇到了这样的痛点:每次打包后,美术和策划需要手动将AB包(AssetBundle)复制到SVN指定目录,再手动提交更新。这个过程中经常出现版本错乱、遗漏文件甚至覆盖他人修改的情况。
经过内部讨论,我们决定开发一套自动化流程来解决以下核心问题:
- 消除人工操作带来的不确定性
- 确保每次打包产物都能完整归档到版本控制系统
- 建立可追溯的版本对应关系
- 减少非技术成员的操作负担
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术方案设计
2.1 整体架构设计
方案采用Unity Editor扩展结合Python脚本的方式实现自动化流水线:
code复制[Unity Build Pipeline] → [Post-build Python Script] → [SVN Client] → [Remote Repository]
关键组件说明:
- Unity Editor扩展:在Build完成后触发后续流程
- Python控制脚本:处理文件操作和SVN命令
- SVN命令行工具:保证与TortoiseSVN等GUI工具兼容
2.2 技术选型考量
选择Python而非C#实现文件操作和SVN交互,主要基于:
- 更灵活的文件系统操作API
- 更好的跨平台兼容性(特别是处理中文路径)
- 便于后续集成到CI/CD系统
- 避免UnityEditor.dll在打包后不可用的问题
3. 具体实现步骤
3.1 Unity端后处理脚本
在Editor文件夹下创建BuildPostprocessor.cs:
csharp复制using UnityEditor;
using UnityEngine;
using System.Diagnostics;
public class BuildPostProcessor
{
[PostProcessBuild(1)]
public static void OnPostprocessBuild(BuildTarget target, string path)
{
if(target != BuildTa
