一、AssetBundle的定义和作用
1、AssetBundle是一种压缩包,它能够容纳模型、贴图、预制体、声音,甚至整个场景,并且可以在游戏运行过程中进行加载。
2、AssetBundle内部会自行保存各个资源之间的依赖关系,这使得在加载和使用资源时,能够准确地获取到所需的关联内容。
3、该压缩包支持LZMA和LZ4这两种压缩算法,通过这些算法可以有效减小包体大小,加快网络传输速度,提升游戏资源的加载效率。
4、将一些可下载的内容放置在AssetBundle中,能够显著减少游戏安装包的体积,既方便玩家下载,又能优化游戏的初始安装体验。
二、什么是AssetBundle
AssetBundle从两个关键维度来理解:
- 作为硬盘存储结构:AssetBundle本质上是硬盘上的一个文件,也可看作是一个特殊的压缩包,类比为一个文件夹,内部容纳多个文件,主要分为两类:
serialized file(序列化文件):将资源拆解后整合在一个对象中,最终统一写入一个单独的文件,整个AssetBundle仅有一个序列化文件。
resource files(源文件):像图片、声音这类二进制资源,会被单独保存,这样的设计便于快速加载,提高资源调用效率。
2、作为程序运行对象:AssetBundle还是一个可通过代码从特定压缩包加载出来的对象。这个对象完整保留了当初添加到压缩包内的所有内容,在游戏运行过程中,开发人员能够通过这个对象将所需内容加载出来并加以使用,实现灵活的资源管理与调用 。