将Unity 3D场景与Git合并

Baw*_*tra 5 git version-control merge unity-game-engine

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

提前致谢.

Hei*_*bug 8

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

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

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


小智 2

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

  • _“通常在‘源’存储库中保存二进制对象是有争议的想法”_ - 这可能太宽泛了。_编译_期间生成的二进制文件 - _是_;_build_ 项目所需的二进制文件 - _no_。例如,在我的网络项目中,我们将 **.PNG** 添加到 SCM,因为它们是编译所必需的;部署;并由团队的其他成员使用。同样,我们添加_audio_;_video_ 和其他 Unity 媒体。可能不同的是你有两个不同的存储库;一份用于源代码,一份用于资产,如开发团队之一在 Unity Talk 视频中概述的那样 (2认同)