在下载和运行Unity WebGL游戏后,我在改变当前页面时遇到了网页应用程序的问题。
实际上,我可以确定游戏正在运行,因为当我的角色死亡时,我不断听到声音。
在改变网页时是否有一种删除所有内容的方法?这可能是一种内存泄漏吗?
编辑1:我的网页应用程序使用AngularJS / Material完成。
在下载和运行Unity WebGL游戏后,我在改变当前页面时遇到了网页应用程序的问题。
实际上,我可以确定游戏正在运行,因为当我的角色死亡时,我不断听到声音。
在改变网页时是否有一种删除所有内容的方法?这可能是一种内存泄漏吗?
编辑1:我的网页应用程序使用AngularJS / Material完成。
iframe
中加载WebGL unity,这样就能将应用程序沙盒化。iframe
节点即可,例如:var iframe=...;
iframe.parentNode.removeChild(iframe);
当你在iframe中时,无法直接与Unity播放器通信,但是你仍然可以通过postMessage
互相传递消息。
此外,应立即卸载所有与之相关的资源。
index.html
文件就可以工作(而且数据会在不进行任何处理的情况下卸载)。
问题是我试图直接通过iframe传递AngularJS值。我认为我没有其他解决方案,只能使用老派的GET方法。或者,是否有可能使用postMessage来传递AngularJS数据? - MadJlzz#
字符后面的部分,例如:http://example.com/path?search#hash
)。这样它甚至不会被发送到服务器,同时仍然可以通过JavaScript中的location.hash
使用。 - Krzysztof BociurkoUnity 2019.1提供了一个恰当的方法来退出webgl并释放内存(尽管在我的测试中失败了,也许是我错了,请让我知道它是否真正有效):
您可以像这样使用JS版本
unityInstance.Quit(function() {
console.log("done!");
});
更多内容请查看退出和内存清理
。
Release
或Debug
文件夹中,具体取决于构建方式)。 - Nika Kasradze