Unity3d 2020版本发布WebGL报错Uncaught SyntaxError: Invalid or unexpected token 和unityFramework is not...修正

Posted 十幺卜入

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d 2020版本发布WebGL报错Uncaught SyntaxError: Invalid or unexpected token 和unityFramework is not...修正相关的知识,希望对你有一定的参考价值。

问题描述

如题的问题是在Windows项目发布WebGL时遇到的,Unity3d的版本是2020.3.12f1c1,部署平台是IIS,运行浏览器是Chrome。如果是其它的版本的Unity,该方法可能不适用。
具体表现是打开WebGL网页后加载至8-90%时卡住,而且不会再提升加载进度:

F12打开Console窗口报错:
Uncaught SyntaxError: Invalid or unexpected token (at Build.framework.js.gz:1:1)
Uncaught ReferenceError: unityFramework is not defined at r.onload (Build.loader.js:1:3167)

完整报错截图:

刚开始怀疑的是工程中使用的插件或者dll等模块有影响,于是我进行了一个空项目上的测试,还是一样的情况,无法正常启动至运行界面。

解决方法

禁用压缩格式(Compression Format:Disabled):

设置完成后,再次打包放到服务器运行,还是有很多报错:
404 (Not Found);
Build.loader.js:1 wasm streaming compile failed: TypeError: Failed to execute ‘compile’ on ‘WebAssembly’: HTTP status code is not ok.
both async and sync fetching of the wasm failed
完整报错:

主要是有两个文件找不到的问题(404),可以先进行修复,尝试在MINE类型中添加两个文件类型。

打开IIS的MIME类型进行添加,左侧选中 > 点击“MIME类型”:

空白处右键“添加”:

添加“.data”–“application/data”:

添加“.wasm”–“application/wasm”:

如果有其它MIME类型自行添加即可。

其它Web服务器可以自行搜索进行配置即可。

如上的配置修改后,启动时Console窗口也不会有相关的报错,程序顺利加载进入运行场景:

参考解决方法:https://forum.unity.com/threads/uncaught-referenceerror-unityframework-is-not-defined-at-htmlscriptelement-script-onload.970611/

以上是关于Unity3d 2020版本发布WebGL报错Uncaught SyntaxError: Invalid or unexpected token 和unityFramework is not...修正的主要内容,如果未能解决你的问题,请参考以下文章

unitywebgl允许http没有响应

unity2019怎么设置webgl的发布内存?

【Unity3D问题】Unity5.0.1f 发布helloWorld级别的 WebGL 都会卡死(如图),无法发布任何WebGL产品

在vue中使用unity3D实现webGL将要呈现的效果

Highlight Plus - Unity3D物体高亮插件使用教学

Unity3d发布WebGL+创建IIS服务器+部署阿里云IIS服务器详细步骤+问题解决(图文详情)