Unity 3D AssetBundle.Unload释放内存

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

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


实际运行过程中会出现用AssetBundle.Unload(false),但是加载的内容没有显示出来,导致这种问题的原因是U3D没有处理好的一个环节。在WWW加载资源完毕后,立刻对其资源进行unload,然后再进行Instantiate,此时进行unload会对资源造成影响,以至于Instantiate没有贴图或者等等问题发生。

解决办法:
先进行Instantiate, 再AssetBundle.Unload,或者自己写个时间等待功能,等待1到2帧之后再进行Unload。这样就不会出现Instantiate渲染中就运行unload的情况了。


我是在加载完所有依赖资源后再加载主资源,再AssetBundle.Unload(false)掉依赖资源,然后再Instantiate主资源,这时主资源出现问题。

你可能感兴趣的:(开发工具)