Unity3D游戏开发之使用SVN对Unity进行版本控制

 

步骤:Edit > Project Settings > Editor

 

 

Unity3D游戏开发之使用SVN对Unity进行版本控制

 

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

 

Unity3D游戏开发之使用SVN对Unity进行版本控制

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就可以对齐合并,当然还是要人为的避免冲突,除非你摸透了那些序列化文本的含义,可以手动编辑冲突。