认识Unity中AssetBundle

  以下情况仅适用于lz4方式打包的bundle文件。

  AssetBundle.LoadFromFile函数加载bundle文件时,并不会将所有可使用的资源加载进来,它占用内存的大小与声明资源的数量有关系。  如上图所示,ui_gfx内因声明了29000多个资源,导致占用空间最大。而实际bundle文件最大的dl_background因内部仅一个资源,占用空间最小。

 

  资源的释放:

  加载的prefab,不需要时只需要将它置为null就可以了,不能Destroy和Resources.UnloadAsset。设置为null之后,它所引用的材质及纹理等是不会释放的,可以通过调用Resources.UnloadUnusedAssets进行释放。

  加载的Audio、Texture等资源,是可以调用Resource.UnloadAsset进行释放的。

  AssetBundle.Unload方法将释放上图中的内存,当参数设置为false时是不会释放加载出来的资源的,所以当再次加载里面的资源时,将出现多份相同资源的情况。

 

posted @ 2022-02-22 17:10  hghhe  阅读(68)  评论(0编辑  收藏  举报