1.什么是AssetBundle?
AssetBundle是一种资源压缩包。资源打包AssetBundle有两个好处:
- 减小安装包的大小,资源可以在进入游戏时候,网络下载。
- 热更资源,方便修复线上资源问题引起的Bug,或新增加游戏内容。
AssetBundle分为两种类型:场景AssetBundle & 非场景AssetBundle。
2.AssetBundle结构
2.1 AssetBundle由两部分组成:Header和Data。
- 头部包含AssetBundle资源的信息( 版本号,文件信息,数据类型,压缩类型)等,文件信息记录了数据部分里边每个资源的文件名以及每个资源在整个AssetBundle文件中的offset和size,通过这个信息可以直接获取AssetBundle中某个资源的数据。从Unity5.3开始这部分数据会单独生成一个跟AssetBundle同名的.mainfest文件。
- 数据段包含打包到AssetBundle中的资源(模型,贴图,Shader,预制体,声音,场景)等。
非场景AssetBundle结构:
场景AssetBundle结构:(PreloadData,AssetBundle应该是在Shared data中,更多的Objects在SerializedFile中)