Unity 场景切换间的内存清理

今天在看项目框架之时看到空场景清理内存的相关操作,有些不明,故查了资料,看到一篇文章,链接:https://gameinstitute.qq.com/community/detail/106992

 

        Unity加载新的场景时,所有的内存对象都会被销毁,包括Assetbundle.Load加载的对象和Instantiate克隆的对象。但从上一篇博客也可以看到,Assetbundle的加载中还有一份Assetbundle文件的镜像内存的存在,这个是不会在切换场景时被清理掉的,需要我们手动清理,这种数据缓存用.Net的术语是属于非托管的。

        AssetBundle.Unload(false):释放AssetBundle文件内存镜像

        AssetBundle.Unload(true):释放AssetBundle文件内存镜像同时销毁所有已经Load的Assets内存对象

        Reources.UnloadAsset(Object):显式的释放已加载的Asset对象,只能卸载磁盘文件加载的Asset对象

   Resources.UnloadUnusedAssets:用于释放所有没有引用的Asset对象

   GC.Collect()强制垃圾收集器立即释放内存 Unity的GC功能不算好,没把握的时候就强制调用一下

        在场景A到B的切换间,插入一个空场景X,空场景的作用就是承上启下,负责清理场景A的资源然后再切换到场景B。具体的使用就不多说了。

你可能感兴趣的:(#,Unity内存管理,内存管理)