1.什么是AssetBundle?谈谈你对AssetBundlen内存分配情况的理解
(1)AssetBundle是一个压缩包,其中包含模型,贴图,预制体,声音甚至整个场景,可以在游戏运行时被加载
AssetBundle自身保存着互相的依赖关系,也就是说不同的包之间可以相互联系
压缩包可以使用LZMA和LZ4压缩算法,减少包的大小,更快的进行网络传输
可以把一些下载内容放在AssetBundle中,减少游戏安装包的大小
(2)AssetBundle是一个文件夹压缩包,其中文件可以大致的归为两类,一个是序列化文件(serialized files)一个是源文件。
序列化文件保存类似prefab等,将资源(只有在游戏中才能读取的)打碎序列化为一个单独的文件;源文件(resource files)例如图像和声音(可以直接被读取的)等被单独保存方便快速加载
(3)它是AssetBundle的一个对象,可以通过代码将其压缩包中的内容加载出来
2.AssetBundle的使用流程
(1)指定资源的AssetBundle属性(AssetBundle的名字可以xxx/xxxa,当包较多时方便分类)
(2)构建AssetBundle包
(3)上传AB包
(4)加载AB包中的资源
3.为什么使用AssetBundle?
(1)可以让打包出来的应用程序更小
(2)方便程序动态更新,通过修改AssetBundle玩家可以不用重新安装应用程序直接完成程序的更新
4.打包出来的文件结构
AssetBundle文件和AssetBundle.manifest(包含了所有的AB信息)以及不同文件夹下的AssetBundle打包文件和对应的.manifest文件