31

Unity中的AssetBundle 资源打包有什么作用-腾讯游戏学院

 5 years ago
source link: http://gad.qq.com/article/detail/287741
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
AssetBundle首先从字面意思理解为资源捆绑,那么他的作用就是将一部分资源(模型,贴图,材质,预制体,声音场景等等),打包压缩在一起,那么可能有人会问,对于unity项目,把资源压缩打包有什么用呢?

主要作用有两点

1:减少安装包的大小  

首先你要了解unity的打包原理,默认情况下,unity编译打包是对项目下的Assets文件夹全部内容进行压缩打包

5bc6ebb843dff.png

那么按照这个原理,你的Assets文件夹的大小将会影响到你最终打包出的安装包的大小,假如你现在正在制作一个游戏项目,最终打出来的安装包过大可能会对玩家下载造成一定影响,对一般玩家来讲,下载10M的游戏安装包远远比下载100M的游戏安装包要更容易接受,而AssetBundle可以将一部分资源打包到一个压缩包里面,游戏运行到需要的时候再进行下载这部分资源。

举个例子:你的游戏一共有100个关卡,如果将这些全部打包则打出的安装包大小为100M,如果现在你用AssetBundle技术将后面90关的资源分离出去进行打包,那么你现在打包的游戏内容只有10个关卡的资源,安装包大小仅为10M,等玩家体验了前十关觉得还不错,当他想玩10关以后的游戏内容时,提示他需要下载资源包体验更多精彩内容,然后在unity中加载剩余的90关的资源包。这样做的话,你的游戏安装包仅仅10M大小,因为下载比较快,也比较省流量,可能会吸引更多的玩家下载体验你的游戏。

2:可以用热更新修复你的游戏Bug

经历千辛万苦,你的游戏终于上线了,是时候该庆祝一番了吧?不要高兴的太早,你突然收到玩家反馈,游戏第20关通关后无法进入到下一关,据查证,是原来打包时某个同事粗心大意把第21关的资源弄错了,导致加载21关时报错,这位同事的鸡腿儿能不能保得住,我们关心的不是这个,我们现在需要第一时间修复这个问题,如果是按照原来的打包方式,你们需要重新出一个100M的包,然后把重新出的包交给游戏平台审核,审核通过后,玩家需要卸载掉原来的游戏软件,重新下载你们新打出的安装包,(ps玩家心理:坑X游戏,又需要花100M重新下载,老子这个月流量都不够聊微信了,不玩了!)

如果按照另一种打包方式,我们在后面90关的AssetBundle包里修复这个问题,这时候通过服务器传输AssetBundle最新的包,会把有问题的资源进行修复,提示玩家bug已经修复,玩家进入游戏,发现可以把20关打通了,并且成功进入到下一关了,在这个游戏过程中,玩家不需要重新下载那100M的安装包,只需要打开游戏下载部分需要更新的资源,这部分资源一般会比较小,一般情况下可能是几十k的大小,就可以重新体验游戏了。这就是AssetBundle的第二个作用。

都看到这里了应该能明白AssetBundle有什么用了吧,我们下期将介绍如何使用AssetBundle,敬请期待

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK