[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进行了合并(两次修改合并)。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity中,预制件和实例化是非常常见的概念。预制件是一种可重复使用的对象,可以创建多个实例。而实例化则是在场景中创建一个新的对象实例,该实例可以被修改、移动和删除,而不会影响预制件或其他实例。 下面是一个简单的示例,演示如何在Unity中添加对象实例: 1. 首先,打开Unity编辑器并创建一个新场景。 2. 在场景中创建一个新的空对象,此空对象将用作容器来保存实例化的对象。 3. 然后,创建一个新的预制件。您可以在项目视图中右键单击,选择“Create”->“Prefab”,然后将其命名为“Cube”。 4. 将预制件拖动到场景中的容器对象中,这将创建一个预制件的实例。 5. 在场景中选择容器对象,然后在Hierarchy视图中右键单击并选择“Create Empty”,这将创建另一个空对象。 6. 您现在可以将此新对象命名为“SpawnPoint”,以便于识别。 7. 接下来,打开脚本编辑器并创建一个新的C#脚本。将以下代码添加到脚本中: ``` using UnityEngine; public class SpawnObject : MonoBehaviour { public GameObject objectToSpawn; public Transform spawnPoint; void Start() { Instantiate(objectToSpawn, spawnPoint.position, spawnPoint.rotation); } } ``` 8. 在场景中选择SpawnPoint对象,然后将SpawnObject脚本添加到该对象上。 9. 在SpawnObject脚本组件中,将objectToSpawn属性设置为Cube预制件,并将spawnPoint属性设置为SpawnPoint对象的Transform组件。 10. 您现在可以运行场景,并查看Cube预制件的实例化。您可以尝试通过更改SpawnPoint对象的位置来更改实例化的位置,并且可以通过更改Cube预制件的属性来更改实例化的外观。 希望这个示例能够帮助您了解Unity中的预制件和实例化的基本概念,以及如何将它们用于创建对象实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值