[Unity_Plastic SCM小技巧] 使用 UnityYAMLMerge 工具合并场景和预制件文件

首先YAMLMerge工具其实并不局限于PlasticSCM,git也可以,它是内置在Editor内的一个更加智能的版本控制工具,只不过正常不会启用,他的目录在C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe(Unity Editor安装目录),MAC上:/Applications/Unity/Unity.app/Contents/Tools/UnityYAMLMerge。
为了使用YAML进行合并,要先设置序列化模式为强制文本(默认都是这个)。
打开Plastic SCM,选择 Preferences > Merge Tools,然后单击 Add 按钮->1.选择 External 合并工具->选择 Use with files that match the following pattern->添加 .unity (.prefab也可以,这里就不试了)扩展名->入以下命令:
"C:\Program Files\Unity\Hub\Editor\2021.3.3f1c1\Editor\DatalTools\UnityVAMLMerge.exe" merge -p "@basefile" "@sourcefile” "@destinationfile” “@output”
(前面的Editor目录替换成自己的就行了,双引号如果不好使用<C:\Program Files\Unity\Hub\Editor\2021.3.3f1c1\Editor\DatalTools\UnityVAMLMerge.exe>)
对参数-p的解释
  • Off:仅使用偏好设置中设定的默认合并工具而不进行智能合并。
  • Premerge:启用智能合并,接受纯净的合并(纯净的合并是指同一scene下对不同物体操作的合并,如果多个人同时对同一场景下同一物体操作还是会有冲突的)。不纯净的合并将创建文件的预先合并基础版本、他们的版本和我的版本。然后,对这些版本使用默认合并工具。
  • Ask:启用智能合并,但发生冲突时显示一个对话框让用户解决冲突(这是默认设置)。

测试

用分支合并来模拟多个人对同一个场景修改(切换账号太麻烦了)。
在主分支上新建一个场景添加两个空物体test1,test2,并创建他的子分支。
创建分支后当前工作区会变到子分支上,test1挂载一个脚本checkin。
将工作区切换回主分支,添加test上的脚本checkin。
现在主分支和子分支上的scene文件实际已经不一致了(一个对test1挂载了脚本,一个对test2挂载了脚本)。
正常合并会报错,但经过YAML的启用现在将子分支合并到主分支上。
检测到场景冲突,点击resolve coflict即可自动合并场景,同时可以添加批注。
这时候回到场景reload之后就可以发现Scene进行了合并(两次修改合并)。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值