如何使用Unity Smart Merge合并我的Unity场景?

4

我正在尝试使用Smart Merge合并我和我的合作伙伴一起工作的Unity场景。我的其他资源和预制件都可以通过Smart Merge解决冲突,但是有一个场景根本没有合并。

在我的.git/config文件中,我添加了以下内容:

[merge]
tool = unityyamlmerge
[mergetool "unityyamlmerge"]
trustExitCode = false
cmd = 'C:\\Program Files\\Unity\\Editor\\Data\\Tools\\UnityYAMLMerge.exe' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"

我还包括了一个 .gitattributes 文件,其中包含

*.unity binary
*.prefab binary
*.asset binary

我已将资产序列化设置为“强制文本”,版本控制设置为“可见元文件”。
我们的预制件和其他资产合并得很好,但其中一个场景根本无法合并。
在终端运行git mergetool命令时,它会显示此指定场景的冲突,但最后返回以下内容:
Left  563852304.Light.m_Color.r add as 0.8962264
Right 563852304.Light.m_Color.r add as 0.9433962
Left  610301896.GameObject.m_IsActive add as 0
Right 610301896.GameObject.m_IsActive add as 1
Left  610301898.Transform.m_LocalPosition.x add as -13.07
Right 610301898.Transform.m_LocalPosition.x add as -14.31
Left  610301898.Transform.m_LocalPosition.y add as 2.6
Right 610301898.Transform.m_LocalPosition.y add as 2.14
Left  610301898.Transform.m_RootOrder add as 8
Right 610301898.Transform.m_RootOrder add as 7
Left  869912137.Transform.m_LocalPosition.x add as -7.36
Right 869912137.Transform.m_LocalPosition.x add as -7.333
Left  869912137.Transform.m_LocalScale.x add as 4
Right 869912137.Transform.m_LocalScale.x add as 4.0070143
Conflict handling:
Xmas-Prototype-01/Assets/_Scenes/InitScene.unity seems unchanged.
Was the merge successful [y/n]?

还有更多的冲突,但太多了无法列出。

这是唯一一个没有与我的本地分支合并的文件。我能否以某种方式让这个场景合并?

谢谢!

2个回答

3
我知道这不是一个很好的答案。在处理场景和git时,典型的最佳实践是一次只有一个人处理场景。我们一直在使用“场景帽”。
我们(独立工作室)所做的是通过增量加载多个场景,因此关卡设计师有一个没有功能的场景进行工作,而程序员(不需要花费很多时间在场景上)则有一个“引导”场景,其中包含游戏功能。

“场景帽子”是指第二段中的描述(一个好策略),还是其他什么东西? - ow3n

0

我认为你应该确保yamlmergetool可以通过在.gitattributes中添加内容来处理.unity、.prefabs和其他任何纯文本(非二进制)文件。

*.unity merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf

关于YAML令我烦恼的一件事是,似乎没有规律地添加文本到场景中。如果您将GameObject添加到场景列表的底部,则它会出现在YAML源代码的随机位置。如果您移动它,而不是移动源代码,它会更改一个名为`m_RootOrder`的属性,以反映根的零索引顺序。当yamlmergetool启动时,它很快就会感到困惑,因为源代码编辑器正在处理行号+外观相同的代码块。正如@thefragen指出的那样,应对此问题的好方法是让协作者在单独的场景中工作,以避免潜在的合并问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接