[unity]AssetBundle加载

来源:互联网 发布:app数据接口开发 编辑:程序博客网 时间:2024/05/26 15:56
  • 加载
    • 大致经历以下过程
      • WWW
      • AssetBundle
      • Asset
    • WWW
      • 加载:通过url加载
      • 内存大小:
        • 压缩资源:翻倍(为什么会得出翻倍?)
        • 非压缩:几乎相同
    • 内存对象:WebStream
  • AssetBundle
    • 加载:随着WWW加载,第一次访问的时候会在内存生成一个SerializeFile,内存也会跟着增加0.4M左右(这个0.4M是什么?)
    • 内存大小:在WWW的基础上增加0.4M(非固定)
    • 内存对象:SerializeFile(archive/Cab-XXXX)
  • Asset
    • 加载:AssetBundle.LoadAsset
      • 相关的脚本,shader,Asset,Transform,GameObject都会被加载进来,存放在内存的Asset下
    • 大小:完整大小,(会对相关的资源进行一次解压)
    • 依赖项
      • 如果该asset依赖到了其他AssetBundle,需要把相关的assetBundle也加载了(即获得相关的SerializeFile)
  • Instance
    • 内存对象:SceneMemory
  • 测试
    • 资源:toon knight-brown
      • 压缩前:(6.5M)
        • 依赖(19个文件)
          • animation(3.41)
          • texture(2.6M)
          • prefab(0.159M)
        • 运行前:60.2M
        • 加载www,66.9M,up6.7M
        • 加载assetBundle,68.9,up2M
        • loadAsset, 89.3M, up20M
        • WWW.Dispose,72.4,down27M
        • AssetBundle.Unload(false),64.2M,down8M
        • spawn:64.2
        • despawn:64.2
        • prefab.destory():60.2
      • 压缩后:(2M)
        • 依赖(19个文件)
          • animation(1.6M)
          • texture(0.3m)
          • prefab(0.1m)
        • 运行前:58.9M
        • 加载www,62.3M,up3.4M
        • 加载assetBundle,64.3M,up2M
        • loadAsset:85M,up26M
        • WWW.Dispose:68.6M,down16
        • AssetBundle.Unload(false),68.4,down0.2
        • spawn:68.5M,up0.1M
        • Despawn:68.5M
        • Prefab.Destory(true),64M, down4
    • 资源:example_01_totalprop_scene_01,加载前56.7M
      • 压缩前:26.5M
        • 无依赖
        • 加载www,84.0M,涨27.3M
        • 加载ab,84.5M,涨0.5M
      • 压缩后:5.15M
        • 无依赖
        • 加载www,67.3M,涨10.6M
        • 加载ab,67.8M,涨0.5M
        • unload ab,56.7M,恢复原来的
0 0