先吐个槽。关于这个国内各种简单到家的文章让人搞不懂,而且场景合并,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 设置控件事件对应的函数

    在项目中,右击你想设置的控件,打开属性. 然后找到:控件事件,如果在Visual Studio 2015中操作,显示如图: 然后,以设定单击事件为例: 点击右边的三角,选择 <Edit Code ...

  2. 一个基于RBAC0的通用权限设计清单

    注:RBAC0与RBAC1不同在于权限继承.关于RBAC1的权限设计,敬请关注作者后续CSDN博客.1,用户表 保存系统用户信息,如张三.李四,字段可以有id.name.fullname.email. ...

  3. BZOJ4356 : Ceoi2014 Wall

    求出左上角到每个需要保护的点左上角的最短路树,那么最优解一定圈住了它们. 然后将每个点拆成四个点,四个点之间如果没跨越最短路树的树边,那就连0权边. 每个需要保护的点四周4个点都不可通行,求出最短路即 ...

  4. topcoder SRM 610 DIV2 DivideByZero

    题目的意思是给你一组数,然后不断的进行除法(注意是大数除以小数),然后将得到的结果加入这组数种然后继续进行除法, 直到没有新添加的数为止 此题按照提议模拟即可 注意要保持元素的不同 int Count ...

  5. CF 335B. Palindrome(DP)

    题目链接 挺好玩的一个题,1Y... #include <cstdio> #include <cstring> #include <iostream> using ...

  6. 《你必须知道的.NET》书中对OCP(开放封闭)原则的阐述

    开放封闭原则(OCP,Open Closed Principle)是面向对象原则的核心.由于软件设计本身所追求的墓边就是封装变化,降低耦合,而开放封闭原则就是对这一目标的直接体现.(你必须知道的.NE ...

  7. RTC实时时钟

    作者:宋老师,华清远见嵌入式学院讲师. 1.1 RTC介绍 在 一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备 ...

  8. The Beatles-Hey Jude

    轉載自 https://www.youtube.com/watch?v=V3jCYm_QGZQ Hey Jude, don't make it bad.Take a sad song and make ...

  9. 关于加了hibernate 框架的项目启动特别慢的问题

    今天突然遇到一个问题,就是加了hibernate 框架的项目在启动的时候,特别慢,竟然达到了4分多钟,查来查去,看到我的bean类里*.hbm.xml,有这样的写法: <?xml version ...

  10. 地理数据库的类型geodatabase类型

    地理数据库的类型geodatabase类型 地理数据库是用于保存数据集集合的“容器”.有以下三种类型: 文件地理数据库 - 在文件系统中以文件夹形式存储.每个数据集都以文件形式保存,该文件大小最多可扩 ...