WebGL
在下载并运行 Unity游戏后更改当前页面时,我的 Web 应用程序出现问题。
事实上,我确信游戏正在运行,因为当我的玩家死亡时,我会不断听到声音。
有没有办法在更改网页时删除所有上下文?这可能是一种内存泄漏吗?
编辑 1:我的 Web 应用程序是使用 AngularJS / Material 完成的
WebGL
在下载并运行 Unity游戏后更改当前页面时,我的 Web 应用程序出现问题。
事实上,我确信游戏正在运行,因为当我的玩家死亡时,我会不断听到声音。
有没有办法在更改网页时删除所有上下文?这可能是一种内存泄漏吗?
编辑 1:我的 Web 应用程序是使用 AngularJS / Material 完成的
解决方案很简单:在 中加载 WebGL unity iframe
,这会将应用程序沙箱化。
完成统一应用程序后,只需删除iframe
类似的节点:
var iframe=...;
iframe.parentNode.removeChild(iframe);
它和它的所有资源都应该立即卸载。
当您在 iframe 中时,您无法直接与 Unity 播放器通信,但您仍然可以使用postMessage
.
Unity 2019.1 提供了退出 webgl 并释放内存的正确方法(虽然它在我的测试中失败了,也许我错了,请让我知道它是否真的有效):
你可以像这样使用 JS 版本
unityInstance.Quit(function() {
console.log("done!");
});
有关更多信息,请检查退出和内存清理