Как выгрузить единство WebGL - PullRequest
0 голосов
/ 28 февраля 2019

Я использую Unity WebGL build, и это способ инициализации / загрузки Unity WebGL в JavaScript.

 var gameInstance = UnityLoader.instantiate("gameContainer", "Build/WebGLDemo.json", {onProgress: UnityProgress});

, но нет способа выгрузить WebGL.Я могу удалить тег canvas, но проблема в том, что в памяти остаются некоторые ресурсы, которые не являются сборщиком мусора.Кроме того, когда я пытаюсь удалить

function DeleteGame(){
            console.log("remove game");
            document.getElementById("gameContainer").remove();
            //gameInstance = null;
      }

, мы получаем Furstum error

Положение экрана вне поля зрения (экран pos 0.000000, 0.000000, 0.000000) (Camera rect 0 00 0)

Есть ли какой-нибудь подходящий способ выгрузить webgl?

1 Ответ

0 голосов
/ 01 апреля 2019

В бета-версии Unity 2019 Unity предоставляет встроенный метод (C # / JavaScript) для выгрузки Unity WebGL и очистки памяти .

  • C #: вызов Application.Quit ()
  • JS: вызовите unityInstance.Quit (обратный вызов)

Вы можете использовать либо версию C #, либо Javascript:

unityInstance.Quit(function() {
    console.log("done!");
});
unityInstance = null;

Для более подробной информации проверьте Форумы Юнити и Юнит Бу г.

Я использовал эту функцию в бета-версии Unity 2019.1.0, но я не уверен, что это очистка памяти или нет, но она определеннозакрыть приложение webgl.

...