使用SVN对Unity进行版本控制(Unity 3.5 and SVN, now easy and free for all!)

原文地址:http://blog.teamthinklabs.com/index.php/2012/04/11/unity-3-5-and-svn-now-easy-and-free-for-all/


先吐个槽。关于这个国内各种简单到家的文章让人搞不懂,而且场景合并,prefab合并等关键问题都说没法解决,其实本质就是因为它们都是二进制文件,所以SVN没法对其合并,但事实上Unity是支持把这些文件都强制使用文本的!后面会提到。


另外本人英文能力有限,渣翻译。虽说是翻译,但其实没照搬。


正文:

对于任何项目来说版本控制都是至关重要的,但对于Unity来说是个头疼的问题。现在Unity的最新版是3.5,已经可以简单的进行版本控制了(说明:现在是4.x了,当然3.5都有的功能4.0不可能没有)。

步骤:Edit > Project Settings > Editor



选择之后到Inspector窗口,如图所示


Version Control一栏默认模式是disabled,改成 “Meta Files”,这样之后Unity会对所有资源文件创建相应的.meta文件,这会让你的工程更好的配合SVN(吐槽:其实我完全不知道是干嘛用的,那些.meta.....)。


DEMO部分略过,只是介绍那些个.meta的,自己试试丢几个资源进去然后到文件夹里面去看看就知道了。


Unity使用meta文件记录数据和资源(asset)的设置,所以包括文件夹在内都会有同名的.meta文件。

现在你可以关闭Unity然后把工程目录里面的Library文件夹删掉。然后仅提交“Assets” 和 “ProjectSettings” 两个文件夹到SVN。然后重新打开工程,Unity会重新导入所有资源。你不需要把Library文件夹导入SVN。需要注意的是,如果你想移动或重命名文件,你要把它的.meta文件也以前移动或者重命名,如果你是在Unity里面移动,就不需要考虑这个(说明:这里没提到重命名是不是也一样,实际上只要你是在Unity里面操作的就不用担心.meta文件,Unity会自行处理,当然我只是用4.0测试了而已)。


剩下的就是关键的二进制文件问题。因为场景和prefab都是用二进制保存的,而如果多个人同时操作场景或修改prefab,那么因为SVN无法合并二进制文件而产生冲突。而事实上,Unity是可以强制把所有文件都保存成文本的。

还是这张图


下面的Asset Serialization(资源序列化)选项就是序列化方式,默认是mix(混合),这里强制改成Force Text(强制文本),然后关闭Unity,重新打开,全部Unity自己生成的二进制资源都变成文本了,这样SVN就可以对齐合并,当然还是要人为的避免冲突,除非你摸透了那些序列化文本的含义,可以手动编辑冲突。

来看看文本序列化后的场景:


看了之后感觉自己手动编辑的可能性较低,所以场景还是尽量不要同时编辑,否则可能会出现不可预料的情况,这个只能自己使用后凭经验行事了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值