如何解决 WebGL Unity 游戏中的此错误?

Posted

技术标签:

【中文标题】如何解决 WebGL Unity 游戏中的此错误?【英文标题】:How can I solve this error in WebGL Unity game? 【发布时间】:2020-05-29 18:46:18 【问题描述】:

我不知道为什么会出现这个错误。在 WebGL 中构建我的项目并在 itch.io 游戏窗口(在 Chrome 中)中启动它后,它会显示此消息,游戏无法运行:

在此页面上运行 Unity 内容时发生错误。有关更多信息,请参阅您的浏览器 javascript 控制台。错误是:未捕获 异常:在 jsStackTrace 中止(180) (WebGL.wasm.framework.unityweb:8:22313)stackTrace (WebGL.wasm.framework.unityweb:8:22484) onAbort@file:///C:/Users/wujtm_000/Desktop/WebGL/Build/UnityLoader.js:4:11118 中止(WebGL.wasm.framework.unityweb:8:483539) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[45753]:0xda48f7 (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[22089]:0x9023d7) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[24498]:0x95f899 (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[22992]:0x93c06c) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[45533]:0xda3cc0 UnityModule [UnityModule/Module.dynCall_iiiiii] (WebGL.wasm.framework.unityweb:8:458801)invoke_iiiiii (WebGL.wasm.framework.unityweb:8:335855) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[43654]:0xd4f185 (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[43125]:0xd37edc) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[4225]:0x18b90c (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[4224]:0x18b835) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[10198]:0x3c205a (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[10182]:0x3c0d4e) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[12109]:0x4b637b (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[12108]:0x4b6095) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[10577]:0x3ed282 (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[10288]:0x3caa9b) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[10288]:0x3caab0 (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[10283]:0x3ca5ba) @blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[10276]:0x3c881e (blob:null/721358bf-caaa-4408-babf-350932a4b11a 第 8 行 > WebAssembly.instantiate:wasm-function[45547]:0xda3ef2) UnityModule [UnityModule/Module.dynCall_v] (WebGL.wasm.framework.unityweb:8:467249) browserIterationFunc (WebGL.wasm.framework.unityweb:8:175900)runIter (WebGL.wasm.framework.unityweb:8:178973) Browser_mainLoop_runner (WebGL.wasm.framework.unityweb:8:177435)

网络控制台错误:

由于出现错误时未捕获的中止(180)而调用错误处理程序 在 jsStackTrace (WebGL.wasm.framework.unityweb:8:22313) 在 stackTrace [Object.stackTrace] (WebGL.wasm.framework.unityweb:8:22484) 在 Object.onAbort (https://v6p9d9t4.ssl.hwcdn.net/html/2312897/WebGL/Build/UnityLoader.js:4:11118) 中止时(WebGL.wasm.framework.unityweb:8:483549) 在:wasm 功能 [45753]:0xda48f7 在:wasm 功能 [22089]:0x9023d7 在:wasm 功能 [24498]:0x95f899 在:wasm 功能 [22992]:0x93c06c 在 dynCall_iiiiii (:wasm-function[45533]:0xda3cc0) 在 dynCall_iiiiii [Object.dynCall_iiiiii] (WebGL.wasm.framework.unityweb:8:458801) 在 invoke_iiii (WebGL.wasm.framework.unityweb:8:335871) 在:wasm 功能 [43654]:0xd4f185 在:wasm 功能 [43125]:0xd37edc 在:wasm 功能 [4225]:0x18b90c 在:wasm 功能 [4224]:0x18b835 在:wasm 功能 [10198]:0x3c205a 在:wasm 功能 [10182]:0x3c0d4e 在:wasm 功能 [12109]:0x4b637b 在:wasm 功能 [12108]:0x4b6095 在:wasm 功能 [10577]:0x3ed282 在:wasm 功能 [10288]:0x3caa9b 在:wasm 功能 [10288]:0x3caab0 在:wasm 功能 [10283]:0x3ca5ba 在:wasm 功能 [10276]:0x3c881e 在 dynCall_v (:wasm-function[45547]:0xda3ef2) 在 dynCall_v [Object.dynCall_v] (WebGL.wasm.framework.unityweb:8:467249) 在 browserIterationFunc (WebGL.wasm.framework.unityweb:8:175912) 在 runIter [Object.runIter] (WebGL.wasm.framework.unityweb:8:178973) 在 Browser_mainLoop_runner (WebGL.wasm.framework.unityweb:8:177435) DevTools 加载失败 SourceMap:无法加载内容 铬扩展://gighmmpiobklfepjocnamgkkbiglidom/include.preload.js.map: HTTP 错误:状态码 404,net::ERR_UNKNOWN_URL_SCHEME DevTools 无法加载 SourceMap:无法加载内容 chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.postload.js.map:HTTP 错误:状态码 404,net::ERR_UNKNOWN_URL_SCHEME 斑点:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8 错误时未捕获的中止(180) 在 jsStackTrace (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:22313) 在 Object.stackTrace (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:22484) 在 Object.onAbort (https://v6p9d9t4.ssl.hwcdn.net/html/2312897/WebGL/Build/UnityLoader.js:4:11118) 中止时 (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:483549) 在:wasm 功能 [45753]:0xda48f7 在:wasm 功能 [22089]:0x9023d7 在:wasm 功能 [24498]:0x95f899 在:wasm 功能 [22992]:0x93c06c 在 dynCall_iiiiii (:wasm-function[45533]:0xda3cc0) 在 Object.dynCall_iiiiii (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:458801) 在 invoke_iiii (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:335871) 在:wasm 功能 [43654]:0xd4f185 在:wasm 功能 [43125]:0xd37edc 在:wasm 功能 [4225]:0x18b90c 在:wasm 功能 [4224]:0x18b835 在:wasm 功能 [10198]:0x3c205a 在:wasm 功能 [10182]:0x3c0d4e 在:wasm 功能 [12109]:0x4b637b 在:wasm 功能 [12108]:0x4b6095 在:wasm 功能 [10577]:0x3ed282 在:wasm 功能 [10288]:0x3caa9b 在:wasm 功能 [10288]:0x3caab0 在:wasm 功能 [10283]:0x3ca5ba 在:wasm 功能 [10276]:0x3c881e 在 dynCall_v (:wasm-function[45547]:0xda3ef2) 在 Object.dynCall_v (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:467249) 在 browserIterationFunc (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:175912) 在 Object.runIter (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:178973) 在 Browser_mainLoop_runner (blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:177435) DevTools 无法加载 SourceMap:无法加载内容 铬扩展://gighmmpiobklfepjocnamgkkbiglidom/include.preload.js.map: HTTP 错误:状态码 404,net::ERR_UNKNOWN_URL_SCHEME DevTools 无法加载 SourceMap:无法加载内容 chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.postload.js.map:HTTP 错误:状态码 404,net::ERR_UNKNOWN_URL_SCHEME 29cf55a5c5-c403-41ef-aab8-de035b7ea92b:8 出现异常情况 发生:PlayerLoop 内部函数已被调用 递归地。请联系客户支持并提供示例项目,以便 我们可以重现问题并对其进行故障排除。 (文件名: 行:377)

如果您需要 Unity Launcher js。代码 - 我不能在这里涉及它,因为它有太多的字母,priv。


我尝试过的事情:

重建项目 在 Firefox 中本地运行它,这通常可以工作,但同样的错误是 显示... 将 Unity 更新到最新版本 制作另一个非常小的项目并构建它 WebGL - 成功了!!!一世 不知道怎么做,所以这个大项目可以工作,有什么建议吗...?

请帮忙!!!

【问题讨论】:

浏览器的 javascript 控制台中是否还有错误提示的更多信息? (F12 调出 chrome) 是的,有。我编辑了我的帖子,所以你可以看到它 【参考方案1】:

不确定这是否仍然重要,但无论如何这里有一个答案。我们能够确保这个问题几乎不再发生。我们仍在考虑加强这一点,因为有时会出现错误。

1。在统一中

确保更新 Unity。上一个版本似乎处理得更好。 分配更多内存。在我们的特定用例中,我们确实可以使用更多内存 (-s WASM_MEM_MAX=1024MB)。

2。在 JS 中

我们确保每次都退出 Unity(在我们的 Angular SPA 中!)。由于有一个 Service Worker 可以轻松地再次为 Unity 提供服务,因此我们总是删除该实例。

    this.gameInstance
        .Quit()
        .then(() => 
            // Do whatever your app needs here
            this.gameInstance = null;
            this.playState$.next(null);
        )
        .catch(() => 
        console.log("Quitting Unity wasn't a success ?");
        );

这让事情变得更加稳定。希望对您有所帮助。

【讨论】:

Lol 发布了 5 个月后 5 月回答,但仍然很棒 在哪里做这个-s WASM_MEM_MAX=1024MB?我的意思是在哪个文件中写这个或者改变这个的设置在哪里 您可以在文件夹“editor”中工作,因此它不在构建中,创建一个设置 PlayerSettings 的 C# 脚本。然后类似于PlayerSettings.WebGL.memorySize = 2048;【参考方案2】:

我忘记了这篇文章,但现在回答它,所以如果有人再次遇到这个问题,它不会那么混乱。我基本上在游戏中使用了一个dreamlo自定义排行榜,它崩溃的原因很简单。 WebGL 需要付费 SSL,我完全没有抓住重点。哑巴。

如果这些天有人像我一样迷路了,希望我能帮助别人......

【讨论】:

以上是关于如何解决 WebGL Unity 游戏中的此错误?的主要内容,如果未能解决你的问题,请参考以下文章

教程Unity WebGL 内存优化:续篇

unity webgl打包游戏一开始灰屏太久怎么解决?

[蛮牛教程] Unity WebGL内存优化:Deux部分

unity发布WebGl在手机上的横屏适配,webgl横版游戏在手机上直接转横屏

如何解决 Access 中的此查询错误?

博主营地 | 如何生成WebGL发布到网站上分享你的游戏