版本:Unity 6 (6000.0)
语言:English
版本控制
Perforce 集成

版本控制集成

Unity 集成了两个版本控制系统:Perforce用于文件更改管理的版本控制系统。 更多信息
参见 术语表
Plastic SCM。要在 Unity 中使用版本控制集成,您需要为 Unity 项目设置 PerforcePlastic SCM 服务器。

在 Unity 中设置版本控制

打开 Unity 项目,转到 编辑 > 项目设置,然后选择 版本控制 类别。

属性 描述
模式 选择版本控制模式。
隐藏元数据文件 在操作系统的文件浏览器中隐藏 .meta 文件。无论您选择哪种模式,Unity 都不会在项目视图中显示 .meta 文件。
可见元数据文件 如果您要使用 Unity 不支持的版本控制系统,请选择此选项。这是默认设置。然后,您可以使用您选择的版本控制系统管理源资源和这些资源的元数据。
Perforce 如果您使用 Perforce 作为您的版本控制系统,请选择此选项。
用户名 输入与您的 Perforce 帐户关联的用户名。此属性仅在 模式 设置为 Perforce 时可见。
密码 输入与您的 Perforce 帐户关联的密码。此属性仅在 模式 设置为 Perforce 时可见。
工作区 输入您的工作区。例如,Example**Workspace**1。此属性仅在 模式 设置为 Perforce 时可见。
服务器 输入您的 Unity 项目所在的服务器。例如,localhost:1666。此属性仅在 模式 设置为 Perforce 时可见。
主机 输入您希望计算机模拟的主机名。例如,workstation123.perforce.com。此属性仅在 模式 设置为 Perforce 时可见。
日志级别 选择在 Unity 的控制台日志中接收多少版本控制信息。
详细 记录与版本控制相关的每个操作。此选项提供非常详细的日志记录,如果您想调试您的版本控制设置,这将很有用。此属性仅在 模式 设置为 Perforce 时可见。
信息 记录与版本控制相关的错误、警告和信息。
通知 记录错误和警告。
致命 Unity 仅将致命错误打印到控制台。
状态 显示与版本控制系统连接状态的信息。如果您未连接,请选择 连接 以连接到您已配置的系统。此属性仅在 模式 设置为 Perforce 时可见。
自动添加 启用此设置后,当您通过编辑器或磁盘上的文件夹将文件添加到项目时,会自动将文件添加到版本控制系统。禁用此设置后,您需要手动将文件添加到版本控制系统。此设置默认启用。此属性仅在 模式 设置为 Perforce 时可见。
脱机工作 启用此设置以脱机工作。启用此设置后,您需要在 P4V 中协调脱机工作,或使用 P4 中的协调命令使 Perforce 服务器库与您在脱机时所做的工作保持同步。有关更多信息,请参阅 使用 Perforce 脱机工作。此属性仅在 模式 设置为 Perforce 时可见。
异步更新 启用此设置以使用异步版本控制状态查询。启用后,Perforce 会更新文件的版本控制状态,而不会停止 Unity 编辑器。当您与版本控制服务器的连接具有高延迟时,请使用此设置。

注意: 只有状态查询是异步的。Unity 会同步执行更改文件状态或需要文件状态最新信息的操作。此属性仅在 模式 设置为 Perforce 时可见。
显示检出失败 启用此属性以在 Perforce 无法执行检出操作时显示对话框。如果您断开连接或其他用户已独占检出您要编辑的资源,则可能会发生这种情况。此属性仅在 模式 设置为 Perforce 时可见。
覆盖检出失败的资源 启用此设置后,Unity 会保存任何无法检出的资源。这意味着 Unity 会强制保存文件,即使 Perforce 无法检出该文件。这是默认启用的。如果禁用它,则如果 Perforce 无法检出文件,Unity 不会强制保存文件。此属性仅在 模式 设置为 Perforce 时可见。
智能合并 智能合并 使 Unity 更容易合并同一行上发生更改的文件。如果多个用户同时处理同一个项目,这将非常有用。此属性仅在 模式 设置为 Perforce 时可见。
关闭 禁用智能合并。
询问 启用智能合并,但在发生冲突时,您会在合并之前收到通知。这是默认设置。
预合并 自动使用智能合并。
项目外部的版本包 跟踪位于 Unity 项目根文件夹外部磁盘上的包的更改,同时仍保留在本地工作区中。此属性仅在 模式 设置为 Perforce 时可见。
覆盖图标 启用此设置以在编辑器中显示版本控制状态图标。此属性仅在 模式 设置为 Perforce 时可见。

配置版本控制用于管理文件更改的系统。您可以将 Unity 与大多数常见的版本控制工具结合使用,包括 Perforce、Git、Mercurial 和 PlasticSCM。 更多信息
参见 术语表
设置,然后选择状态区域旁边的 连接 按钮以连接到版本控制系统。当 Unity 连接到系统时,已连接 将显示在状态区域中。

要调整您的修订控制工具,请打开 首选项,然后选择 外部工具 部分。您可以在 修订控制差异/合并 下选择一个新工具。

在 Unity 中使用版本控制

当您将编辑器设置为与您的版本控制系统一起工作时,您可以通过编辑器执行版本控制操作,而不是在版本控制客户端中执行。为此,请右键单击项目视图中的资源。

版本控制操作因您使用的版本控制而异。下表显示了每个版本控制可用的操作。

版本控制操作 描述 Perforce Plastic SCM
获取最新版本 这会将您计算机上的文件更新为与版本控制系统中的文件匹配。 否。要获取最新的更改并更新文件,您需要使用版本控制窗口窗口 > 资源管理 > 版本控制)。
提交 将文件的当前状态提交到版本控制系统。
检出 允许对文件进行更改。
检出(其他) 选择是检出资源及其 .meta 文件,还是仅检出资源,或仅检出 .meta 文件。
标记添加 将文件添加到版本控制中。
还原 放弃对打开的已更改文件的更改。
还原未更改 删除先前已检出但您未修改的文件的检出状态。
解决冲突 解决多个用户已更改的文件上的冲突。 否。冲突显示在版本控制菜单中,但您需要在 Plastic SCM GUI 中解决它们。
锁定 防止其他用户提交对文件的更改。 否。要在 Plastic SCM 中锁定或解锁文件,您必须在外部编辑特定的 Plastic SCM 锁定文件。有关更多信息,请参见有关 Plastic SCM 集成 的页面。
解锁 释放锁定并允许任何人提交更改。 否。要在 Plastic SCM 中锁定或解锁文件,您必须在外部编辑特定的 Plastic SCM 锁定文件。有关更多信息,请参见有关 Plastic SCM 集成 的页面。
差异 比较您计算机上的本地文件与服务器上的文件之间的差异。您可以选择仅比较资源文件,或比较资源文件及其 .meta 文件。

检出文件

在某些版本控制系统(如 Perforce)中,版本化文件默认情况下是只读的,并且需要您在编辑它们之前检出它们(除非您已启用 脱机工作 设置)。当您从编辑器处理版本化资源时,检查器一个 Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
参见 术语表
显示一个 检出 按钮,该按钮启用文件编辑。此外,项目设置广泛的设置集合,允许您配置物理、音频、网络、图形、输入和项目的许多其他方面的行为。 更多信息
参见 术语表
检查器有一个 检出 按钮,您可以使用它来检出特定的项目设置。

如果您有自定义编辑器脚本代码,用于禁用其他自定义编辑工具的只读资源部分,或者如果您手动写入版本化文件,请使用 AssetDatabase.IsOpenForEditAssetDatabase.MakeEditable API 来检查文件可编辑性并执行检出操作。

版本控制集成还公开了 Provider.PreCheckoutCallbackProvider.PreSubmitCallback C# 回调,用于自定义版本控制操作验证逻辑。

当 Unity 执行 保存项目 操作时,它会将您在编辑器中修改或标记为已修改的任何资源写入磁盘。然后,根据需要在版本控制中检出这些资源。这可能导致即使文件没有发生实际更改,资源也会被检出。当编辑器脚本在资源上调用 EditorUtility.SetDirty 而未检查其是否已修改时,这种情况最常发生。

注意: 如果 Unity 无法将您的更改提交到您的版本控制客户端(例如,如果服务器已关闭或出现许可证问题),它会将您的更改存储在单独的更改集中。

当您将更改保存到 .场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是分段设计和构建您的游戏。 更多信息
参见 术语表
文件时,Unity 会自动签出该文件。如果您使用 Plastic SCM,它还会自动签出自动生成的资源,例如光照贴图。

版本控制窗口

您可以使用版本控制窗口查看更改列表中的文件。要访问该窗口,请导航到 窗口 > 资源管理 > 版本控制

输出选项卡列出了所有等待提交到版本控制的本地更改。输入选项卡列出了所有需要从版本控制中拉取的更改。

右键单击窗口中的资源或更改列表以对其执行操作。要将资源在更改列表之间移动,请将其从一个更改列表拖动到目标更改列表的标题。

图标

编辑器显示以下图标以可视化文件和资源的版本控制状态

图标 用途
文件已在本地添加,并等待添加到版本控制中。
文件已由其他用户添加到版本控制中,并等待添加到版本控制中。
文件已在本地签出。
文件已由其他用户远程签出。
合并此文件时发生冲突,需要解决。
文件已在本地删除,并等待在版本控制中删除。
文件已由其他用户删除,并等待在版本控制中删除。
文件尚未纳入版本控制。您可以使用 标记添加 操作手动添加文件。
文件已被您锁定,其他用户无法修改。
文件已被其他用户锁定,您无法修改。
其他用户已检入此文件的新版本。使用 应用传入更改 操作获取最新版本。
服务器正在请求此文件的版本控制状态,或正在等待响应。只有在您使用像 Perforce 这样的集中式版本控制系统时,才会出现此情况。
版本控制
Perforce 集成