WebGL项目调用Application.Quit()时游戏窗口冻结求助
WebGL项目调用Application.Quit()冻结问题解决方案
WebGL平台运行在浏览器环境中,Unity的Application.Quit()方法在该平台没有实际作用,强行调用会触发逻辑异常,导致窗口冻结。
解决方法
- 通过Unity与JavaScript交互,调用浏览器的窗口控制逻辑替代
Application.Quit():- 修改C#退出方法:
public void ExitGame() { print("exitGame"); #if UNITY_WEBGL && !UNITY_EDITOR // 调用自定义JS方法实现关闭 Application.ExternalCall("handleWindowClose"); #endif }- 在WebGL构建产物的
index.html中添加对应JavaScript函数:
function handleWindowClose() { // 浏览器限制:仅能关闭由脚本打开的窗口 if (window.opener) { window.close(); } else { // 直接打开的页面无法自动关闭,提示用户手动操作 alert("请手动关闭当前标签页"); } }
内容的提问来源于stack exchange,提问作者Сергей Дальневосточный
相关产品推荐
相关产品推荐

