使用 Unity 外部版本控制系统详解
Unity 提供了资源服务器 (Asset Server) 插件产品,用于便于集成的工程版本控制。然而,若因某些原因无法使用 Unity 资源服务器 (Asset Server),也可以将工程存储在其他版本控制系统中,例如 Subversion、Perforce 或 Bazaar。不过,这需要对工程进行手动初始设置。
工程结构修改
在检出工程之前,需要让 Unity 稍微修改工程结构,以使其与存储在外部版本控制系统中的资源兼容。具体操作如下: 在应用程序菜单中选择“编辑 (Edit)” -> “工程设置 (Project Settings)” -> “编辑器 (Editor)”,然后在“版本控制 (Version Control)”下拉列表中选择“元文件 (Metafiles)”,以此启用外部版本控制支持。
此操作会为“资源 (Assets)”目录中的每个资源创建一个文本文件,该文件包含 Unity 必要的簿记信息。这些文件的文件名首部分是与其关联资源的完整文件名,扩展名是 .meta。在 Unity 内移动并重命名资源时,相关的 .meta 文件会自动更新。但如果通过外部工具移动或重命名文件,务必手动同步相关的 .meta 文件。
版本控制系统检出工程
若要在版本控制系统中检出工程,应将“资源 (Assets)”和“工程设置 (ProjectSettings)”文件夹添加至系统,而“库 (Library)”文件夹则应彻底忽略。因为在使用外部版本控制时,“库 (Library)”文件夹只是导入资源的本地缓存。
另外,创建新资源时,要确保将资源本身及其关联的 .meta 文件添加至版本控制。
示例:创建新工程并导入至 Subversion 版本库
假设我们已经在 svn://my.svn.server.com/ 有一个 Subversion 版本库,并且希望在 svn://my.svn.server.com/MyUnityProject 创建一个工程。可按照以下步骤进行初始导入:
- 创建新工程:在 Unity 中创建新工程,并将其命名为
InitialUnityProject。可以在此处添加任何初始资源,也可以稍后添加。 - 启用元文件:在“编辑 (Edit)” -> “工程设置 (Project Settings)” -> “编辑器 (Editor)”中启用“元文件 (Meta files)”。
- 退出 Unity:退出 Unity 以确保所有文件都已保存。
- 删除库目录:在工程目录中删除“库 (Library)”目录。
- 导入工程目录至 Subversion:如果使用命令行客户端,可从初始工程所在的目录执行以下命令:
svn import -m "Initial project import" InitialUnityProject svn://my.svn.server.com/MyUnityProject若操作成功,工程就已导入至 Subversion,此时可以删除
InitialUnityProject目录。 - 从 Subversion 中检出工程:执行以下命令:
svn co svn://my.svn.server.com/MyUnityProject - 检查目录版本:检查“资源 (Assets)”和“工程设置 (ProjectSettings)”的目录版本。
- 打开工程:按住
Option或左Alt键,启动 Unity,打开已检出的工程。打开工程会重新创建上述第 4 步中删除的“库 (Library)”目录。 - 设置忽略筛选器(可选):为没有版本化的“库 (Library)”目录设置忽略筛选器,执行以下命令:
svn propedit svn:ignore MyUnityProject/Subversion 会打开文本编辑器,在其中添加“库 (Library)”目录。
- 提交更改:最后,执行以下命令提交更改,此时工程已设置完毕并准备就绪:
svn ci -m "Finishing project import" MyUnityProject
通过以上步骤,就可以将 Unity 工程成功集成到外部版本控制系统(以 Subversion 为例)中,实现有效的版本管理。