使用 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) 文件夹应彻底忽略 — 使用外部版本控制时,它只是导入资源的本地缓存。

创建新资源时,请确保已将资源本身与关联的 .meta 文件添加至版本控制。

示例: 创建一个新工程,并将其导入至 Subversion 版本库。

首先,假设我们已经在 svn://my.svn.server.com/ 有一个 subversion 版本库,并希望在 svn://my.svn.server.com/MyUnityProject 创建一个工程。 然后,按照以下步骤,在系统中创建初始导入:

在 Unity 创建新工程,并将其命名为 InitialUnityProject。可以在此处添加任何初始资源,或稍后添加。

在编辑 (Edit)->工程设置 (Project Settings)->编辑器 (Editor) 中启用元文件 (Meta files)

退出 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