unity3d 资源加载与释放的内存管理
Posted jane-near
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d 资源加载与释放的内存管理相关的知识,希望对你有一定的参考价值。
unity3d 在动态创建实例的过程中有三个步骤
AssetBundle.LoadFromFile 创建的是AssetBundle文件内存镜像 bundle
bundle.LoadAsset 创建的是asset内存镜像 asset
Instantiate(asset) 创建出实例对象 gameobject
所以就对应这三个生成物体的生成与释放
gameobject
Instantiate(asset) 生成 gameobject
Destroy(gameobject) 销毁 gameobject
asset
bundle.LoadAsset 创建asset内存镜像
Reources.UnloadAsset(asset) 释放asset内存镜像
Resources.UnloadUnusedAssets() 释放没有引用的asset
(策略,不想释放的asset,保持asset的引用,调用UnloadUnusedAssets来统一释放想释放的asset)
bundle
AssetBundle.LoadFromFile 创建bundle文件内存镜像
bundle.Unload(false) 释放bundle文件内存镜像
(在创建完成所有asset之后,调用bundle.Unload(false))
场景切换会销毁所有gameobject,清除asset内存镜像的引用,但是不包括AssetBundle文件自身的内存镜像
以上是关于unity3d 资源加载与释放的内存管理的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D资源异步加载——AssetBundle资源打包加载