Когда моя игра запускается, она загружает базовую сцену, а затем загружает другие вторичные сцены поверх этой базовой сцены.
Чтобы загрузить дополнительную сцену поверх базовой сцены, это код для дополнительной загрузки сцены
Код (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 раза, браузер завершит работу с нехваткой памяти.
Нет сбоя в редакторе, профилировщик показывает постоянную памяти для нескольких загрузок сцены одной и той же сцены (редактора), при этом происходит сбой одного и того же в браузере.
EDIT: Профилировщик Unity показывает, что память MONO постоянно увеличивается даже в пустой сцене, запущенной в редакторе.
Может кто-нибудь помочь?