美文网首页
二、资源管理1:ab包是什么

二、资源管理1:ab包是什么

作者: GameObjectLgy | 来源:发表于2023-07-31 09:57 被阅读0次
    1、原理概念

    AssetBundle又称AB包,是Unity针对资源提供的一种用于资源存储的压缩包。可以动态地加载和卸载AB包,继而有选择地加载内容,可以最大程度地减少运行时的内存压力。

    2、数据结构
    • 包头
      有关AssetBundle的信息,例如其标识符、压缩类型和清单(manifest)。
      manifest是一个用对象名字做key的查找表,每个条目都提供一个字节索引,指示在AssetBundle的数据段中可以找到给定对象的位置。
    • 数据段
      1)如果不适用压缩,数据段将保留为原始字节流。不压缩,解压快,包较大,不建议使用。
      2)LZ4是块压缩方式(chunk-based)。块压缩的数据被分为大小相同的块,并被分别压缩。如果需要实时解压随机读取,块压缩是比较好的选择。LoadFromFile()和LoadFromStream()都只会加载AB包的Header,相对LoadFromMemory()来说大大节省了内存。 压缩稍大,解压快,用什么解压什么,内存占用低,建议使用。
      3)LZMA是流压缩方式(stream-based)。流压缩再处理整个数据块时使用同一个字典,它提供了最大可能的压缩率,但是只支持顺序读取。所以加载AB包时,需要将整个包解压,会造成卡顿和额外内存占用。

    相关文章

      网友评论

          本文标题:二、资源管理1:ab包是什么

          本文链接:https://www.haomeiwen.com/subject/wljdlltx.html