先吐个槽。关于这个国内各种简单到家的文章让人搞不懂,而且场景合并,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就可以对齐合并,当然还是要人为的避免冲突,除非你摸透了那些序列化文本的含义,可以手动编辑冲突。
来看看文本序列化后的场景:

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

译文来源:http://blog.csdn.net/fg5823820/article/details/9531339

Unity Svn(转)的更多相关文章

  1. 【Unity/SVN】使用SVN管理Unity项目

    本文转载自:http://blog.csdn.net/neil3d/article/details/38437237 Unity提供了自己的XXXServer,不过大家评论好像不是很好用,主要是不支持 ...

  2. SVN 文件解锁

    之前一直一个人用svn,后来团队扩编,同事使用svn下载项目后.我却无法提交了,出现以下错误: locked in another working copy No lock on path (Stat ...

  3. Unity使用外部版本控制SVN

    原地址:http://www.cnblogs.com/realtimepixels/p/3652146.html Using External Version Control Systems with ...

  4. unity插件开发——一个例子:简单的svn集成

    在unity开发过程中,通常我们习惯性地在Windows操作系统下使用svn进行版本管理,而每次提交更新,都需要回到文件夹下的这种操作让人无法忍受.是不是可以集成svn到unity中呢?查了一圈uni ...

  5. UNITY 状态机 + SVN + 码云 下篇

    上篇说到自己写的一个FSM状态机,这篇写怎么把代码和码云联系在一起! 首先,我们应该知道为什么使用码云? 码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gi ...

  6. unity 状态机 + svn + 码云 上篇

    最近刚找到在实习,忙于公司一个c++ 项目 ,一直想写博客来着,没时间写今天熬夜打算先献上自己前几天自己封装的一个fsm状态机 话不多说,直接上正题,这篇博客主要是在学校的时候状态机一直使用的是pla ...

  7. 聊聊Unity项目管理的那些事:Git-flow和Unity

    0x00 前言 目前所在的团队实行敏捷开发已经有了一段时间了.敏捷开发中重要的一个话题便是如何对项目进行恰当的版本管理.项目从最初使用svn到之后的Git One Track策略再到现在的GitFlo ...

  8. 让Unity NavMesh为我所用

    Unity里面整合了一个NavMesh功能,虽然让人又爱又恨. 但当你在其他地方需要这个NavMesh的数据时,就更让人欲罢不能了. 比如说服务器需要Unity的NavMesh数据时. 比如说你想将U ...

  9. Unity Mono脚本 加密

    加密环境 引擎版本:Unity3D 5.3.4 及更高版本 (使用Mono而并非IL2CPP) 操作系统:CentOS 6.2(Final) 加密环境:Android.IOS(暂定) 加密对象:C#源 ...

随机推荐

  1. MFC CString to char* (Visual Studio 2015 亲测可用)

    右键划线部分,打开属性,然后找到:配置属性-常规-字符集,选择:使用多字节字符集 然后,char *c;CString str; 就可以 strcpy(c,str); 如果觉得好用,请点个赞,谢谢!

  2. iOS学习21之UILabel, UITextField, UIButton, UIImageView

    1.UILabel 1> 概述 UILabel (标签): 是显示文本的控件.在App中 UILabel 是出现频率最高的控件 UILabel 是 UIView 子类,作为子类一般是为了扩充父类 ...

  3. 【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法

    众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的.比如下面的情况: 解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示.2.使用i ...

  4. [NOIP2015]运输计划 D2 T3 LCA+二分答案+差分数组

    [NOIP2015]运输计划 D2 T3 Description 公元2044年,人类进入了宇宙纪元. L国有n个星球,还有n-1条双向航道,每条航道建立在两个星球之间,这n-1条航道连通了L国的所有 ...

  5. HDU 3090 (贪心)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3090 题目大意:一共n段路.每段路每千米都会被抢劫一定数量,可以雇佣武士护卫m千米.问最少被抢劫数量 ...

  6. Android 在线更新apk

    1.获取当前包的信息: 1 PackageManager manager = Main.this.getPackageManager(); 2 try { 3 PackageInfo info = m ...

  7. [知识点]C++中的运算符

    1.前言 之前最开始学习语法和基础知识的时候,基本上最简单的运算符有所接触,当时对于位运算这种东西完全没有概念.今天对C++中出现的部分运算符尤其是位运算符进行一些总结. 2.+ - * / % 这些 ...

  8. 10秒钟安装 Vim编辑器,5分钟浏览常用命令 2015.10.25

    首先我想说,vim与vi的命令几乎相同,,所以学习编辑命令时很轻松,排除扩展相关,以及自动补全等配置的使用在外30秒钟安装 Vim编辑器,5分钟浏览常用命令环境:虚拟机Ubuntu:安装vim并浏览命 ...

  9. 【BZOJ1503】 [NOI2004]郁闷的出纳员 splay

    splay模板题,都快把我做忧郁了. 由于自己调两个坑点. 1.删除时及时updata 2.Kth 考虑k满足该点的条件即r->ch[1]->size+1<=k && ...

  10. Android -- TextView (3)

    1.效果图