当前位置:   article > 正文

Unity 场景切换间的内存清理_unity3d切换场景时怎么清理原场景数据

unity3d切换场景时怎么清理原场景数据

今天在看项目框架之时看到空场景清理内存的相关操作,有些不明,故查了资料,看到一篇文章,链接: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。具体的使用就不多说了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/332762
推荐阅读
相关标签
  

闽ICP备14008679号