AssetBundle首先从字面意思理解为资源捆绑,那么他的作用就是将一部分资源(模型,贴图,材质,预制体,声音场景等等),打包压缩在一起,那么可能有人会问,对于unity项目,把资源压缩打包有什么用呢?
主要作用有两点
1:减少安装包的大小
首先你要了解unity的打包原理,默认情况下,unity编译打包是对项目下的Assets文件夹全部内容进行压缩打包
那么按照这个原理,你的Assets文件夹的大小将会影响到你最终打包出的安装包的大小,假如你现在正在制作一个游戏项目,最终打出来的安装包过大可能会对玩家下载造成一定影响,对一般玩家来讲,下载10M的游戏安装包远远比下载100M的游戏安装包要更容易接受,而AssetBundle可以将一部分资源打包到一个压缩包里面,游戏运行到需要的时候再进行下载这部分资源。
举个例子:你的游戏一共有100个关卡,如果将这些全部打包则打出的安装包大小为100M,如果现在你用AssetBundle技术将后面90关的资源分离出去进行打包,那么你现在打包的游戏内容只有10个关卡的资源,安装包大小仅为10M,等玩家体验了前十关觉得还不错,当他想玩10关以后的游戏内容时,提示他需要下载资源包体验更多精彩内容,然后在unity中加载剩余的90关的资源包。这样做的话,你的游戏安装包仅仅10M大小,因为下载比较快,也比较省流量,可能会吸引更多的玩家下载体验你的游戏。
2:可以用热更新修复你的游戏Bug
经历千辛万苦,你的游戏终于上线了,是时候该庆祝一番了吧?不要高兴的太早,你突然收到玩家反馈,游戏第20关通关后无法进入到下一关,据查证,是原来打包时某个同事粗心大意把第21关的资源弄错了,导致加载21关时报错,这位同事的鸡腿儿能不能保得住,我们关心的不是这个,我们现在需要第一时间修复