Unity SVN 管理(二)

来源:互联网 发布:淘宝在台湾 编辑:程序博客网 时间:2024/06/07 11:12



上篇文章讲述了SVN搭建的一个整体过程,不知道是否能对你起到帮助的作用。

今天就讲述一下,在Untiy使用SVN做管理时所需要注意的东西吧。。

SVN成员的Untiy配置

上篇文件说过,
为了配合SVN,需要对Unity工程做一些设置:
菜单:Edit->Project Settings->Editor:Version Control 选择为[Visible Meta Files];
菜单:Editor-> Project Settings->Editor:Asset Serialization Mode选择为:[Force Text]
而这些设置不仅仅是对于你一个人的Unity配置的,每个使用SVN的成员,都需要配置。

Unity文件上传

Unity需要管理的文件夹不多,一个是Asset,一个是Project Settings,想必大家看过上一边也已经知道了。
Project Settings没有什么多说了(目前我没有接触到)
但是Asset这个文件夹需要讲述的就大有来头了。

Asset

因为这个文件夹中都是你Untiy场景中所需要的文件,脚本等等。

脚本

首先,脚本文件的提交更新这个是必须的,如果装有VS的小伙伴可以下一个VS的SVN插件,方便与在VS中提交和更新代码,这些就不在此赘述了。
脚本的更新具体可以说是
1.个人负责部分的更新。
这部分的更新比较简单,因为是自己单独管理的脚本或者是shader等等,这些和别人的并没有交集(只有自己引用和继承等),可以直接提交修改等等。
2.公共部分的更新。
这块一定要有所注意,因为别人的对你方法的引用可能在你修改提交之后造成项目的生成错误。
所以,公共部分的更新,大多数是主程更新,或者是在集体讨论过之后,对公共方法更新。
这一部分不易自己修改,而且要保证每次修改只有一个人修改,修改之后通知大家一起更新,如果只有个人修改公共部分,在别人更新或者提交代码的时候就可能造成冲突。
这些在一起工作的小伙伴们,只要交流好,应该很好适应SVN公共部分的维护。掌握好节奏,公共部分就不会每天都出现冲突现象了(别问我怎么知道的,我不会给你说修改冲突多麻烦)

资源

模型资源,贴图资源,音频资源等等你能想到的各种资源,都是每个人都需要用到的,可能会修改预制体,可能会修改动画控制器。这些就想是脚本的公共部分一样,一定要小伙伴们交流过之后,提交,更新。
(meta文件一定要上传)

场景文件

Scenes,这个想必是最麻烦的了,一个主场景,每个项目成员都有修改的可能,如果需要修改Scenes都会让大家都停下手头修改这个场景的文件,等待主场景的修改。

这样就很是耽误手头的工作,这样怎么办好呢?

在逛论坛的时候我看到过一句话“用一个人当作 SVN 管理员。 所有东西 都是通过这个管理员提交。其余人只能下载 ( 没提交权限 ) 。修改的所有东西全部给管理员整合”这样不失是一种很好的方法
所以这样就有一个很不错的SVN管理项目的方法了:
(网上大神给出的)
1.由负责集成的项目组成员管理并提交该项目更新到svn数据库
2.其他协作人员从svn数据库下载最新的项目文件
3.协作人员对自己负责的内容进行工作,然后将成果输出。输出时不要钩选依赖
4.将输出的unitypackage文件提交给集成人员(通过svn或者其他途径都可以)
5.集成人员将新的unitypackage导入项目,进行优化,检查后再提交到svn数据库供其他协作人员一起下载使用。

这样就会有人问,既然是Unitypackage可以把所有文件都打包进去,为什么还要之前去管理脚本啊,资源什么的。
(很好,这样说的我真的不知道怎么回答了)
好吧,我就解答一下,因为很多时候,我们修改的部分东西其实是很小的 一部分,而这一部分全部交给集成的人员来做的话,没把集成人员累趴下的,并且在一个公司里边集成人员才是更加需要去写代码的人吧~都是要下班的少年郎~~

所以,我放开了,提交的权限,而这些权限就是你对小伙伴们的信任了。(如果你们工作起来很有默契完全是可以的啊~再加上,我写了一个运行脚本再SVN服务器上,每天都会备份三次当前的项目,而且谁出错谁请吃饭~哈哈哈哈哈哈哈)

我们的方法

一定要醒目,一定要大。

(最重要的一点,保证SVN服务器中的项目是最为正确的)
上边是对大神们的一种总结,使用起来还是很方便的。
但是,我们还是任性的使用了一种很暴力的方法,就是,每个人创建了属于自己的场景做修改并完成预制体,脚本的修改,自己的场景是和主场景一毛一样的。

小伙伴们修改完自己的场景之后,加入主场景测试,没有问题了,导出unitypackage提交给集成人员,集成人员去导入,测试,上传。这样就大大提高了工作的效率,也保证了项目的完整性和正确性。