将Unity 3D场景与Git合并

时间:2015-04-06 11:12:10

标签: git version-control unity3d merge

我试图为我的游戏项目实施一个Git。对于脚本,它可以很好地工作,因为它们已经在文本中。但是场景文件怎么样?它们是二进制文件,因此将它们合并将非常困难。如果我在场景中放置一个游戏对象而另一个同事将另一个放在同一个场景中会怎么样?我们如何合并我们的场景?或者我们应该总是手动导出/导入它吗?

提前致谢。

3 个答案:

答案 0 :(得分:8)

您可以在文本模式下保存场景文件:Edit->Project Settings->Editor->Asset Serialization: Force Text

这种方式场景保存为Yaml文件,有关格式的更多详细信息,请查看doc

尽管我有时会手动合并场景,但这不是一个简单的操作,你必须非常小心(git automerge无法在99%的情况下正确合并它们)。

答案 1 :(得分:2)

通常在“源”中保存二进制对象。存储库是有争议的想法。然而,最近出现了一些专业工具http://wiki.unity3d.com/index.php/UniMerge ......因此可以从头开始购买或书写。

答案 2 :(得分:0)

这是您的团队可以在同一个Unity场景文件上进行工作并使用Gi​​t平稳地合并它的方式。

  1. 在场景预制物中制作所有GameObject。这样,它们每个都可以单独编辑。

  2. 从.gitignore文件中忽略场景文件。

  3. 无论何时在场景中进行更改,请确保将更改应用于预制件。

这样,每当您拉同事的回购协议时,您就不会拉他们的场景,而只是拉他们场景中的预制件。因此,您的场景将使用您所有团队的预制件中的所有最新更改来重建自身,从而实现顺畅的合并。

如果您的场景结构足够好,那么我认为该系统可以正常工作。