You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebGL项目调用Application.Quit()时游戏窗口冻结求助

WebGL项目调用Application.Quit()冻结问题解决方案

WebGL平台运行在浏览器环境中,Unity的Application.Quit()方法在该平台没有实际作用,强行调用会触发逻辑异常,导致窗口冻结。

解决方法

  • 通过Unity与JavaScript交互,调用浏览器的窗口控制逻辑替代Application.Quit():
    1. 修改C#退出方法:
    public void ExitGame()
    {
        print("exitGame");
        #if UNITY_WEBGL && !UNITY_EDITOR
        // 调用自定义JS方法实现关闭
        Application.ExternalCall("handleWindowClose");
        #endif
    }
    
    1. 在WebGL构建产物的index.html中添加对应JavaScript函数:
    function handleWindowClose() {
        // 浏览器限制:仅能关闭由脚本打开的窗口
        if (window.opener) {
            window.close();
        } else {
            // 直接打开的页面无法自动关闭,提示用户手动操作
            alert("请手动关闭当前标签页");
        }
    }
    

内容的提问来源于stack exchange,提问作者Сергей Дальневосточный

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:10:12