Unity WebGL из-за сбоя памяти при многократной загрузке сцены - PullRequest
0 голосов
/ 03 июня 2019

Когда моя игра запускается, она загружает базовую сцену, а затем загружает другие вторичные сцены поверх этой базовой сцены.

Чтобы загрузить дополнительную сцену поверх базовой сцены, это код для дополнительной загрузки сцены

Код (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 постоянно увеличивается даже в пустой сцене, запущенной в редакторе.

Может кто-нибудь помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...