如何卸载统一的WebGL

时间:2019-02-28 11:22:45

标签: c# unity3d unity-webgl

我正在使用unity webGL构建,这是在javascript中初始化/加载unity webgl的方法。

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

,但是无法卸载webgl。我可以删除canvas标记,但是问题是某些资源保留在内存中,没有进行垃圾回收。另外,当我尝试删除

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

那我们就遇到错误了

  

屏幕位置视线不在视锥范围内(屏幕pos 0.000000、0.000000,   0.000000)(摄像头0 0 0 0)

有什么合适的方法可以卸载webgl吗?

1 个答案:

答案 0 :(得分:0)

在Unity 2019 Beta中,Unity提供了一种内置方法(C#/ JavaScript)来卸载Unity WebGL and cleanup memory

  • C#:调用Application.Quit()
  • JS:调用unityInstance.Quit(callback)

您可以使用C#版本或Javascript:

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

有关更多详细信息,请检查unity Forumsunity bu g。

我已经在unity 2019.1.0 beta中使用了此功能,但是我不确定它是否是cleaup内存,但它肯定会关闭unit webgl应用程序。