WebGL Unity游戏中如何解决这个错误?

3

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

在此页面上运行Unity内容时出现错误。请参阅您的浏览器JavaScript控制台以获取更多信息。错误是:未捕获异常:中止(180)@jsStackTrace(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 abort(WebGL.wasm.framework.unityweb:8:483539)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[45753]:0xda48f7(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[22089]:0x9023d7)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[24498]:0x95f899(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[22992]:0x93c06c)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[45533]:0xda3cc0 UnityModule [UnityModule/Module.dynCall_iiiii](WebGL.wasm.framework.unityweb:8:458801)invoke_iiiii(WebGL.wasm.framework.unityweb:8:335855)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[43654]:0xd4f185(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[43125]:0xd37edc)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[4225]:0x18b90c(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[4224]:0x18b835)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[10198]:0x3c205a(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[10182]:0x3c0d4e)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[12109]:0x4b637b(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[12108]:0x4b6095)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[10577]:0x3ed282(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[10288]:0x3caa9b)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[10288]:0x3caab0(blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[10283]:0x3ca5ba)@blob:null/721358bf-caaa-4408-babf-350932a4b11a line 8>WebAssembly.instantiate:wasm-function[10276]:0x3c881e(blob:null/721358bf-caaa-440

argh..

网络控制台错误:

由于未捕获的abort(180)错误,调用错误处理程序 在WebGL.wasm.framework.unityweb:8:22313处的jsStackTrace 在WebGL.wasm.framework.unityweb:8:22484处的stackTrace [Object.stackTrace] 在https://v6p9d9t4.ssl.hwcdn.net/html/2312897/WebGL/Build/UnityLoader.js:4:11118处的Object.onAbort 在WebGL.wasm.framework.unityweb:8:483549处的中止 在:wasm-function[45753]:0xda48f7处 在:wasm-function[22089]:0x9023d7处 在:wasm-function[24498]:0x95f899处 在:wasm-function[22992]:0x93c06c处 在dynCall_iiiii (:wasm-function[45533]:0xda3cc0)处 在dynCall_iiiii [Object.dynCall_iiiii] (WebGL.wasm.framework.unityweb:8:458801)处 在invoke_iiiii (WebGL.wasm.framework.unityweb:8:335871)处 在:wasm-function[43654]:0xd4f185处 在:wasm-function[43125]:0xd37edc处 在:wasm-function[4225]:0x18b90c处 在:wasm-function[4224]:0x18b835处 在:wasm-function[10198]:0x3c205a处 在:wasm-function[10182]:0x3c0d4e处 在:wasm-function[12109]:0x4b637b处 在:wasm-function[12108]:0x4b6095处 在:wasm-function[10577]:0x3ed282处 在:wasm-function[10288]:0x3caa9b处 在:wasm-function[10288]:0x3caab0处 在:wasm-function[10283]:0x3ca5ba处 在:wasm-function[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)处发生异常情况 SourceMap:无法加载内容 chrome-extension://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 blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8 未捕获的abort(180)错误,调用错误处理程序 在blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:22313处的jsStackTrace 在blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:22484处的Object.stackTrace 在https://v6p9d9t4.ssl.hwcdn.net/html/2312897/WebGL/Build/UnityLoader.js:4:11118处的Object.onAbort 在blob:https://v6p9d9t4.ssl.hwcdn.net/cf55a5c5-c403-41ef-aab8-de035b7ea92b:8:483549处的中止 在:wasm-function[45753]:0xda48f7处 在:wasm-function[22089]:0x9023d7处 在:wasm-function[24498
如果您需要Unity Launcher的js代码 - 我无法在此处涉及,因为它有太多字母,私密。

我尝试过的事情:

  • 重新构建项目
  • 在Firefox本地运行,通常可以工作,但是显示相同的错误...
  • 更新Unity到最新版本
  • 创建另一个非常小的项目并构建它的WebGL-成功了!但是我不知道如何使大型项目工作,请有建议吗?

请帮忙!!!


1
浏览器的JavaScript控制台中是否有更多信息,如错误提示所示?(在Chrome中按F12键打开) - Molly J
是的,有的。我编辑了我的帖子,所以你可以看到它。 - hash1
3个回答

3

不确定这是否仍然重要,但是这里有一个答案。我们能够确保这个问题几乎不会再次发生。我们仍在努力改进,因为错误偶尔仍会弹出。

1. 在Unity中

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

2. 在JS中

  • 我们确保每次退出Unity(在我们的Angular SPA中!)。由于存在可以轻松服务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在五月份发布,五个月后回答,但仍然很棒。 - hash1
2
在哪里可以进行 -s WASM_MEM_MAX=1024MB 的设置?我的意思是在哪个文件中写入此设置或者在哪里可以更改此设置。 - Shurvir Mori
你可以在一个名为“editor”的文件夹中工作,因此它不在构建内部。创建一个C#脚本来设置PlayerSettings,然后类似于PlayerSettings.WebGL.memorySize = 2048;这样的内容。 - Marty

0
WebGl => 发布设置 => 启用异常 => 完全无堆栈跟踪

1
根据目前的写法,你的回答不够清晰。请编辑以添加更多细节,帮助他人理解这如何回答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

0

我忘记了这篇文章,但现在回答它,以便如果有人再次遇到这个问题,就不会感到困惑。我基本上在游戏中使用了一个自定义排行榜,但由于一个简单的原因而崩溃了。WebGL需要付费SSL,而我完全没有意识到这一点。真是愚蠢。

Proof

希望我能帮助到有和我一样迷失的人...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接