转载:http://blog.csdn.net/book_longssl/article/details/44055475
算是从unity3d官方网站上的翻译,如果你没有看到,可以看下,这个也是我自己碰到比较麻烦的事情,经常windows下提交,然后mac下更新下去一堆关联没了,有些可以reimport可以变好,有些要重新关联,麻烦的很,因为我们漏了一些东西没有提交到版本控制中。
一些注意点:
(1) Unity3D的二进制资源必须加锁进行版本控制,因为它没办法merge;(2) Unity3D自己产生的C#工程相关文件,包括VS产生或者Mono产生的,都不需要归入版本控制; (3) 在新加入项时,Unity3D会产生一个同名的.meta文件,这个文件记录了此项一个唯一的64位的guid,这个文件必须上传,否则会出现各种缺失的异常情况(比如脚本Miss等) (4) 对于Library文件夹,有以下几个.Asset文件需要进行版本管理: TimeManager TagManager QualitySettings ProjectSettings NetworkManager InputManager EditorBuildSettings DynamicsManager AudioManager 即便如此,在使用Editor进行开发时,由于需要经常改动场景的.unity 文件,而这个是二进制的,所以需要得锁且不能Merge。感觉并行开发的难度还是比较大的,Unity3D还是比较适合个人开发者和较小团队开发,对于大型团队开发,无论是从版本管理还是代码结构上,都觉得不太方便和自然。 |
自:http://blog.dou.li/unity3d%E5%B7%A5%E7%A8%8B%E7%89%88%E6%9C%AC%E7%AE%A1%E7%90%86%E6%96%B9%E6%A1%88.html
Unity进行多人协作开发时必定会涉及资源、代码、配置的版本管理。这里介绍一下用SVN、GIT或其它版本管理系统进行Unity工程版本管理的方法。
新建一个Unity工程,目录结构基本是这样的:
- Assets、Library、ProjectSettings目录
- 运行时还会多出Temp目录
- 如果用Monodevelop或VS打开过还会生成一堆工程文件
最终大约是这样:
Unity工程中有很多二进制文件,会频繁导致冲突,Library目录的文件在每次Unity Editor打开都会发生变化,经常会冲突。
要保证少冲突需要做到:
- 将创建Unity工程需要的最小量的文件提到版本库
- 减少二进行文件的存在
将Unity工程导入版本库,且保证最少冲突的方法
修改Unity工程的默认版本管理方式,Edit->Project Settings->Editor打开设置面板
如图,设置Version Control的Model为Meta Files,表示以meta文件来记录资源版本。
默认为Disabled,这样在无Library目录情况下会出现各种问题(后面会讲到Library不会提到版本库)。
文本化场景文件,Edit->Project Settings->Editor打开设置面板
设置Asset Serialization的Mode为Force Text,表示以纯文本形式保存unity文件。
Mixed和Force Binary都是二进制,不利于版本管理。
-
将Assets、ProjectSettings目录传到SVN、GIT或其它版本库
-
别人CheckOut这两目录后,第一次在Unity Editor中Open Project…后会自动生成Library目录,所以Library无需纳入版本管理