文/vian

1.本文实例操作在Unity5.x中资源打ab包。

2.其他的不多介绍,新建工程创建好工程目录,这里我建立一个uia的模块,还有其对应用到的美术资源目录。aUI是一个ui预制,其引用了美术uia目录中的资源。

090725bun5c5cubbcb3ecs.png
3.实际开发中,我们也可以根据功能模块来按上面这样分目录结构,比较清晰。进入正题现在开始对uia的预制进行打ab包,打包代码如下:

090726bf0xo4xufhhogyjf.png
首先打包之后根目录也会生成一个同目录名的ab包,其中的manifest作用就是供开发人员查看ab中的依赖关系等信息,加载根目录这个ab,可以得到一个AssetBundleManifest 对象如下图,然后就可以通过这个对象得到ab直接的依赖关系。

090726xy0hahx1ueeu09xh.png
5.查看ab包大小,后面会有比较。

090726l77jc9f9zacovhu4.png
6.加载ab包,并实例化aUI的预制,显示出来如下图:

090729hdomvyi9oxbuxqox.png
8.实际开发中,可能我们的aui模块里的aUI预制、bui模块里的bUI预制等等都引用了相同一份资源,这样我们提出一个公共目录,用来放这些被多个引用的资源,打包的时候会先把这个公共目录打包,新版Unity会自动处理好依赖关系,接下来过程里我们会说明。具体目录结构如下图:

090729ww0g4hhsvrel0wzl.png
9.修改aUI预制,使其引用一个公共目录common里的按钮资源,如下图:

090730v12q2ssubd1l111b.png
以上其实我们就已经完成了依赖包的自动处理过程了,为了能更清晰的展现,这里将根目录的manifest贴出如下图:

090730sngll0yd12m0amdg.png
以上内容表示我们上面成功输出有两个ab包,common_res和ui_aui,其中依赖关系清晰可见,ui_aui依赖了公共包common_res,因为我们aUI预制引用了公共包的资源。这里就是Unity新版打ab包的好处,你不用在麻烦的用Push/Pop维持一个依赖的堆栈。

11.上面都已经准备好了,那么继续通过第6步骤的加载过程,我们可以看到效果如下图:

090730d0lrpcm90mylah0m.jpg
我们先获得ui/ui_aui的依赖,然后加载其依赖包common_res,在加载包ui_aui,在实例化预制体即上图显示效果。整个流程日志输出如下:

090730j3m2ktwzfj2tbbgb.jpg
以上动动手,带你深入Unity实际开发中,资源目录结构的整理,资源的打ab包,ab包依赖关系的处理,ab包加载使用,欢迎阅读指正。

via: 游戏扶持by腾讯游戏学院

锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛