游戏开始时,它会加载一个基础场景,然后在该基础场景之上加载其他辅助场景。
要将次要场景加载到基本场景的顶部,这是将场景加性加载的代码
代码(CSharp):
using (downloadWWW = new WWW(url)) {
yield return downloadWWW;
if (downloadWWW.assetBundle != null) {
GlobalData.assetBundle = downloadWWW.assetBundle;
GlobalData.loadedBundleScene = "sceneName";
SceneManager.LoadScene("sceneName", LoadSceneMode.Additive);
}
然后,当我想加载另一个场景时,我会像这样删除次要场景
代码(CSharp):
SceneManager.UnloadScene("sceneName"); // same result using UnloadSceneAsync
GlobalData.assetBundle.Unload(true);
Resources.UnloadUnusedAssets();
(我真的使用UnloadSceneAsync,我只是显示UnloadScene以使其在此处易于阅读)
这应该已经卸载了次要场景,然后我再次调用顶部代码以将另一个场景加载到基本场景之上。
如果重复此循环3到4次,则浏览器将因内存不足而崩溃。
在编辑器中没有崩溃,探查器在浏览器中执行相同操作时会显示同一场景(编辑器)的多个场景负载上的内存常数。
编辑:Unity探查器显示,即使在编辑器中运行的空场景中,MONO内存也在不断增加。
有人可以帮忙吗?