Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)

简介

AssetBundle-browser是一款用于处理AssetBundle的工具,针对Unity5.6+版本,提供了可视化的打包,可以进行场景,预设体,材质等资源打包。插件可以在GitHub或者上传资源中下载。(http://download.csdn.net/detail/mango9126/9917145)


使用步骤


导入插件

下载AssetBundles-browser,解压后放入到工程中的Asset下,此时的Editor中,Windows——>AssetBundle Browser。Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)

新建AssetBundle资源

场景中,新建一个SnowMan预设体,包含材质,模型,Avatar等,选择该预设体,在AssetLabels中添加一个Label,只能小写。Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)


开始打包

选择Editor中的Window——>AssetBundle Browser,进入面板。Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)

从左侧选中bundle文件,右侧区域罗列了这个bundle中包含的所有Asset,包含模型,材质等,这些都是自动加载依赖关系。

选中Build,进入到打包设置面板。Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)

Build Target:选择发布的平台

Output Path:输出路径

Clear Folders:构建之前清空文件夹

Copy to StreamingAssets:拷贝至StreamingAssets文件夹

Compression:选择压缩格式

点击Build即可对当前Browser中所有的bundle进行打包,选择路径,即可在该路径下看到生成的资源文件。


资源复用打包

在打包的过程中,有很多资源都是重复的,例如多个场景中的很多资源都是重复的,多个预设体中使用的可能有重复的材质等现象,如果分别打包出去会造成AssetBundle包过大,AssetBundleBrowser很好的解决掉了这一问题,也实现了资源的复用。

Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)

我们在场景中将SnowMan拷贝一份,取名为SnowMan2,给SnowMan2新的材质,和SnowMan使用相同的模型,并且给SnowMan2一个新的AssetLabel为snowman2,此时再进入到AssetBundleBrowser面板中。Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)

此时存在两个bundle文件snowman和snowman2,并且在右侧面板中可以看到某些依赖资源后有黄色的叹号,表示当前的资源文件在bundle文件中存在复用,怎么处理这种被重复引用的资源呢?在AssetBundle Browser中处理这种依赖问题很简单——被重复引用的资源单独打包——创建一个新的Bundle用来存放那些重复引用的资源。Unity3d的AssetBundle打包——AssetBundle Browser(简单实现资源复用)

我们创建一个新的bundle文件res,把右侧重复的资源拖拽至res下,此时这些重复的资源会被打入到res的bundle文件中,并在自己的bundle文件的依赖清单中加入res包,就是说在加载snowman或者snowman2的时候,都会去自动依赖到res中的资源进行加载,这样可以实现资源打包的复用,减小打包的大小。


总结

AssetBundleBrowser工具提供了很便捷的打包方式,在给需要打包的资源(场景,预设体,材质等)加上label后,在工具的面板中设置相应的打包属性,即可Build生成AssetBundle文件,实现打包,在多个资源需要打包的时候,该工具可以检测出所有资源复用的情况,此时可以把所有复用的资源放到另外的包中进行打包,在加载的时候,会自动根据依赖关系进行加载资源,实现资源的复用,避免AssetBundle包过大。