首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > Unity3D研究院之两个游戏工程资源同步问题(八十六)
2015
10-23

Unity3D研究院之两个游戏工程资源同步问题(八十六)

有的公司是不想让美术和策划有程序权限的,但是Unity在处理团队协作上不太理想,这就造成需要把美术工程的资源同步到程序工程里。目前我有两个方法,各有利弊。

1.由美术或者策划同步

Unity提供了.unitypackage 导出功能,可以通过import来实现同步资源。但是import的方法比较愚蠢它只会增量覆盖并不会帮你删除资源。所以为了保证两个工程的文件夹目录结构完全一样,我们一定要先清空文件夹,然后在import。但是这又造成了个问题,我项目做到后期可能就只需要同步一两个模型,清空后在同步会白白浪费掉很多时间,而且万一出错了就得不偿失。。。那么程序可能就得写工具给美术单独导出某些资源了。。 到了后面.unitypackage多了管理起来很烦人的。

回到正题,我找到了一个方法可以不用生成.unitypackage也能同步两个工程。 原理就是双开unity工程,(在Mac上双开unity的方法是在”应用程序”文件夹中找到Unity/Unity.app  快捷键 “Command + D” ) 然后直接把资源从A工程拖到B工程即可。

Unity3D研究院之两个游戏工程资源同步问题(八十六) - 雨松MOMO程序研究院 - 1

 

 

2.通过svn外链的方式实现同步工程(怎么外链自己谷歌吧)

原理就是在程序的svn目录里在checkout一个美术的svn资源目录。

美术的svn目录:

要注意的是美术在本地先创建一个unity工程, 然后在对应Asset目录下CheckOut自己的svn目录,这样以后就能把所有美术的资源全部提交到这里了。

程序的svn目录:

程序对应也在自己的Asset目录下再去CheckOut美术的svn目录,美术只需要在自己本地的工程里提交资源,程序只需要update一下就同步到自己的工程里了,方便吧。

总结一下: 这两种方法确实都有利弊。

第一种方法的优点就是资源比较安全,我们可以在某一个特定的时间点确定美术资源都是OK的时候在进行同步。那么缺点就是不太方便,必须要腾出一个人力来在固定时间点做这件事。(我相信没有程序愿意干这事,但是教给美术做又容易出错 哎~ D:))

第二种方法的优点就是非常方便,美术程序都不用管资源,通过svn更新的方式就可以同步两个工程。但是对应的缺点就是资源比较危险,因为美术万一资源提交错了,程序一更新也就跟着错了。。 而且如果以后在做多版本打分支的时候程序对应的美术工程也需要在打一个分支。。

目前我在用第二种方法,欢迎大家在留言处一起讨论这个问题。。

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

  1. 对于美术外包来说只能用双开方法了,但是双开我没看明白,到底是把美术工程资源拖到程序工程里还是把程序工程资源拖到美术工程里呢,感觉无论谁拖进谁都还会产生一些没用的资源残留且如果把程序工程资源拖到美术工程下面还会产生原本程序工程里自己向场景添加的一些collider,ui等都要重新弄一遍吧,求博主指点

      • 哦,那这个工具是检查什么呢,我们这边情况是这样的,外包完全不知道程序unity工程,他们做好场景后直接通过.unitypakage发到我们这边,然后我们这边会把美术发过来的这个工程里的hierarchy里所有东西制作一个prefab,然后把我们程序工程里的之前的美术资源全删除再把这个prefab弄到程序工程里。总感觉这样挺麻烦,针对这种情况如果要提供工具过去,这个工具要开发什么功能呢,我还没想明白 Unity3D研究院之两个游戏工程资源同步问题(八十六) - 雨松MOMO程序研究院 - 1

  2. 第三种方法:用工具 BCompare 来比较两个工程,拷贝,我暂时用这种.第四种方法: 程序核心代码做成库.其他代码,全部开放问题也不大.