您的位置:首页 > 其它

Assetbundle的内存处理

2016-03-17 08:57 447 查看
那么下面就举一个AssetBundle的例子:

Assetbundle的内存处理

以下载Assetbundle为例子,聊一下内存的分配。匹夫从官网的手册上找到了一个使用Assetbundle的情景如下:

内存分配的三个部分匹夫已经在代码中标识了出来:

Web Stream:包括了压缩的文件,解压所需的缓存,以及解压后的文件。
AssetBundle:Web Stream中的文件的映射,或者说引用。
实例化之后的对象:就是引擎的各种资源文件了,会在内存中创建出来。

那就分别解析一下:

将压缩的文件读入内存中
创建解压所需的缓存
将文件解压,解压后的文件进入内存
关闭掉为解压创建的缓存

AssetBundle此时相当于一个桥梁,从Web Stream解压后的文件到最后实例化创建的对象之间的桥梁。
所以AssetBundle实质上是Web Stream解压后的文件中各个对象的映射。而非真实的对象。
实际的资源还存在Web Stream中,所以此时要保留Web Stream。

通过AssetBundle获取资源,实例化对象

最后各位可能看到了官网中的这个例子使用了:

这种using的用法。这种用法其实就是为了在使用完Web Stream之后,将内存释放掉的。因为WWW也继承了idispose的接口,所以可以使用using的这种用法。其实相当于最后执行了:

OK,Web Stream被删除掉了。那还有谁呢?对Assetbundle。那么使用

ok,写到这里就先打住啦。写的有点超了。有点赶也有点临时,日后在补充编辑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: