本篇内容
- 1.什么是AssetBundle?
- 2.AssetBundle和Resources
- 3.Assetbundle的打包操作
- 4.AssetBundle的本地和网络加载
习惯性开场白
最近在学习的过程中,发现了两种动态的加载方式Resources,Load和Asset Bundle(后面简称AB)两种方式,通过查询资料,发现两种加载方式都差不多,但是AB更加适合大型项目,以及项目优化,最重要的一点,是可以结合Lua进行热更新,我们都知道,中国的游戏市场是更趋向于网游的,而热更新技术,可以让你通过下载资源包的方式,就可以为我们已经发布的程序提供修复Bug的可能,以及活动相关资源的推送,而不用重新下载客户端安装包,然后重新安装游戏,当然,在单机游戏里也可以通过这种方式,来推送Bug的修复。
什么是Asset Bundle?
我们先来看一下官方说明:
AssetBundles允许您通过UnityWebRequest类流式传输其他资源,并在运行时实例化这些资源。AssetBundle是通过buildPipeline.buildAssetBundle创建的。AB包在平台之间不兼容。为任何独立平台构建的包只能加载到该平台上,而不能加载其他平台。此外,为iOS构建的捆绑包与Android不兼容,反之亦然。比如渲染器的纹理。
简单说,AB就是我们用Unity通过LZMA压缩技术压缩的包,我们通过对这种压缩包的解析,来得到其中的游戏资源,让其加载到我们的内存流中,然后我们可以通过实例化的方式,让其加载到游戏场景中。AB在创建时可以设定依赖关系,比如两个物体AB,如果你在A上面挂了一个脚本