Unity WebGL错误集锦

2023-11-20

ips:
0 Unity的PlayerSettings的otherSettings或者Publish Settings里面的Enable Exceptions里面选择Full StackTrace ,可以在打出的包中的浏览器的webgl打印出错误调用栈,具体在哪个Setting取决于unity的版本
1 一般出现了错误 可以看看在浏览器里面传的变量和在编辑器里面的有什么不一样
如果有不一样 就可以试着将浏览器的变量放入到编辑器里面试试
2 有时一些错误比较可能是浏览器的缓存问题 适当清空缓存是可以的
3 有时一些错误在一个浏览器表达不明确 可以换个浏览器 比如谷歌和火狐切换
4 如果浏览器出现了很不明确的错误提示甚至导致崩溃,而且编辑器本身也有一些无关痛痒的错误,第一时间将这些无关痛痒的错误解决了。因为这些错误可能就是造成浏览器崩溃的错误。
5 开一些翻墙软件也可能造成和服务端的一些资源加载不过来
6 有些错误是在Unity WebGL 程序还没加载完成就出现的 自己清缓存加上服务器重启可能可以了 即使自己一直找不出哪里的错
7 有时打不了包可能是因为系统盘满了
8 在浏览器出报错的时候,有时会出现很长的报错信息,但是真正有用的部分可能不是那个很长的,可能是很长的前面或者后面出现的报错信息,所以看报错的时候全部认真看是很重要 的
9 如果有些bug确定处理好了 但是浏览器还是老样子,可以清一下浏览器缓存
10 不论手机端还是PC端,出了情况最好上谷歌或者火狐浏览器看看报错或者警告的情况,帮助很大。
11 WebGL如果出错了,比较好的找错误的方法是在PC端打出exe包看看报错。

错误:
1 RuntimeError: index out of bounds
这种错误出现,可能是在编辑器里面是 Object reference not set to an instance of an object
即访问某个空引用。

2 An error occurred running the Unity content on this page. See your browser JavaScript console for more info. The error was:
SyntaxError: expected expression, got ‘<’

在我的项目里 这并不是 真的出现了某个符号错误 而是在webgl程序刚加载的时候 就开始接受浏览器或者前端传入的字符 在传入的字符对于一些数据的读取 工作来说 是错误的时候 就会出现这样的报错了 言简意赅就是前端和unity程序交互的时候,传入的某个定好的字段如id是错的。
第二种原因可能是 新推上去的项目还在更新 还没有更新完成

报错232
3 有时我们在浏览器运行的时候,可能会遇到一些错误 但是在unity编辑器的时候,不会遇到,这类abort错误可能是空指针异常。像这样的看不明白是什么错的只能自己去排查了
因为在编辑器都是正常的 没办法直接看 在我的项目中这个问题的出现 我首先用的是夹逼法 将项目推到刚好不会出现这个报错的时候 当然这需要每一次选版本都要重新打包 看浏览器是否正常 选择了之后 查看下一个项目和这个项目之间有什么区别 查看代码之后发现没有什么地方会引起这种错误的 只是有个隐藏的bug 但是不足以导致这样的崩溃。然后我发现程序有个空url加载的报错 但是这个报错一直无关痛痒 在刚好不会出现上面这个报错的时候 编辑器也有啊 但是我实在找不到有什么错了,就干脆回到最新的版本将这个解决了 然后解决之后 unity打包选择的是不压缩 因为采用的是夹逼法,所以我选择不压缩的时候打包速度会快很多,并不是因为不压缩能解决这个问题。然后最新版打包出来就不会有这个报错了.
所以有时有一些编辑器的报错要及时解决 虽然短时间内在浏览器和编辑器无关痛痒,但是可能后续改了某些代码之后 在浏览器就出现报错了。
说白了 那个代码为232的报错是我用unityWebRequest加载某个网络ab包的时候 发了个空地址导致的报错 导致UnityNetWorkError 后面可能在浏览器端导致的是某个空引用,在unity编辑器什么事都没有

4token错误
在我的项目里面 这个报错的原因是 因为后端服务器是阿里云 阿里云为了让速度快些 就会启用高程度的缓存
但是缓存程度太高了 导致有时新的内容更新不上去 就会报这个错 清理一下缓存就可以了

5 WebGL打包不了 有可能是UI里面设置了两种字体

6 WebGL打包出来的字体显示不了中文 可能是选择了Arial字体 这个字体在浏览器的WebGL里面是显示不出来中文的

7 json反序列化报错

“Newtonsoft.Json.JsonSerializationException unable to find constructor to use for types” error when deserializing class

这个方法的一个原因是勾选了某个选项导致在没有默认初始化生成一个类的情况下,系统在打包的时候会将这个类的空构造方法取消掉
然后JsonConvert.DeserializeObj的时候 会找不到空构造方法 我尝试了在代码里面使用空构造方法new一个 但是打包出来的程序在浏览器端会报下面错误 所以就没有继续了

NotSupportedException: System.Reflection.Emit.DynamicMethod
在这里插入图片描述
单纯使用Newtonsoft.json在webgl的浏览器端会有il2cpp的访问问题,这里推荐使用的是JSON .NET For Unity
可以解决这个问题 或者去官网下载最新的Newtonsoft插件,最新的插件现在到12.0.3左右,在WebGL上面的序列化和反序列化可以正常支持
参考链接
“Newtonsoft.Json.JsonSerializationException unable to find constructor to use for types” error when deserializing class

8 浏览器加载不了webgl 报某个错
可能找了很久发现没有什么地方是错的 原因可能是在编辑器那里已经存在很久了的 觉得无关痛痒的一个报错
我这边有个例子就是url为空的报错 解决了之后重新打包就可以进去了 所以有小错误要及时解决

还有个要注意的地方就是下面红框里设置为None的话 如果加载过程中出现 错误 会中断加载的过程,没有什么大报错
将Development Build设置为false 然后将选项设置成下图就行了
在这里插入图片描述

9 Screen position out of view frustum (screen pos 0.000000, 0.000000, 1000.000000) (Camera rect 0 0 0 0)
我遇见这个问题是在webgl上面, WebGL上面切换切卡的时候,需要把嵌入的U3D程序给屏蔽了,但是没有真正关掉,这种时候如果只是单纯前端切换切卡页面,对U3D嵌入程序什么操作都没有做,每帧都会报上面那个错误,要及时把Camera.enabled设置为false,参考网站
Hidden Unity WebGL App: “Screen position out of view frustum”
上述解决办法有个很大的弊端:第一种就是需要前端及时与U3D程序内部进行交互,假设U3D加载好之后会向前端访问当前切卡是否关闭, 如果在第一次U3D程序正在加载的时候,切掉,然后又切回来,这时其实已经有两个U3D程序了,只是其中一个看不到,这时第一个加载好之后询问是否已关闭但是没有 则没有设置camera,这时又没有显示,则会报错,新建一个全局字典,对于每个加载的U3D程序作为键,切卡是否已关闭作为值进行存储,当有U3D程序询问的时候,就返回以它为键的值,这种做法因为前端语言的局限性也不是那么好做
还有种说法是不要真的把U3D所在的页面切了,只是把点击的切卡的页面新加上去 ,这种做法的弊端就是如果用户多次点击U3D程序所在的切卡则会造成多次加载,太多会导致内存泄漏浏览器崩溃,Application.Quit在WEBGL端又无效
这里介绍个更加方便的解决办法:如下图
在这里插入图片描述
WEBGL打出来的包有很多函数可供调用,只是之前自己一直以为是前端的所以没注意,
其中常用的就有onprogress,可以根据里面的加载进度值自定义加载画面,前端与unity交互的SendMessage出自此处,
当然有些方法是否有效还是要试下,比如SetFullscreen在一些时候就不能全屏
这里用到的是Quit方法,如果程序加载过程中和完成后前端都会有个对象,如果unity程序已经完成了加载,通过这个对象调用Quit会立刻摧毁unity在浏览器的程序,如果程序未加载完成时候调用,程序加载完成后会自个销毁,切卡切换卸载U3D程序是很符合逻辑的,因为切卡换了时候程序还在的话,会比较吃机器,但是这种quit方法并不会真的清理掉程序的内存

10 The type name ‘PoseData’ could not be found in the namespace ‘UnityEngine.XR.Tango’ 这个是我将unity升级到2019.3.1f1版本之后出现的,解决办法就是在Window->PackageManager里面降XR的包移出或者升级到最新,参考网址

11 如果WebGL打包不了但是一直查找不到原因,尝试重启unity,如果还不行尝试重启电脑,我试过几次这样的,这可能是unity的bug

12 在谷歌浏览器报错
VM12 UnityLoader.js:4 GET http://192.168.1.39:8082/static/Build/CPWEBGL.json 404 (Not Found)
在火狐浏览器报错
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON dataUnityLoader.js:4:9722
onload http://192.168.1.39:8082/static/Build/UnityLoader.js:4
情况是这样的, 所有前端引用的都是我同一个unity打包的webgl程序,在前端的用户部分能正常访问,前端的商家部分报错找不到这个,其实我和前端约定叫做CPWEBGL,我少放了B,导致商家部分找不到我的文件,但是前端的用户部分能正常访问我也不清楚前端做了什么骚操作,这次经历给的经验就是要注意打的webgl程序的名字

13 LinkError:“TellForEndGoToChatNow"import object field is not a Function”,WebGL里面这个出错是因为在unity的自定义前端交互函数文件Mktail.jslib里面定义了这个方法如红框但是这个方法里面的绿框框住的某个前端方法没有定义,虽然说函数只是在C#里面定义了这个外部引用函数,一直没到调用时机,但是mktail.jslib里面的方法估计在程序加载时候才进行错误检查,发现前端的GotoCustomChat函数没有定义过,所以不认为TellForEndGoToChatNow是一个方法,所以进行的报错吧

在这里插入图片描述

public class HallProSurGoUI : MonoBehaviour
{
    
#if UNITY_WEBGL
    [DllImport("__Internal")]
    private static extern void TellForEndGoToWangPu();

    [DllImport("__Internal")]
    private static extern void TellForEndGoToChatNow(string sellerId);
#endif

14 missing function: canZhanGetWebGLUserId 这个报错出现的原因是在unity的自定义前端交互函数文件Mktail.jslib里面没有定义canZhanGetWebGLUserId 这个方法但是在c#文件里面引用到了这个方法

c#定义
 [DllImport("__Internal")]
    private static extern void canZhanGetWebGLUserId (string sellerId);

15 如果项目有在WebGL端运行的情况,通常会在Unity工程的Assets下的Plugins文件夹里面有自定义的jslib文件,这个文件里面每个定义的方法后面要有逗号分开,如果有没分开的,可能会导致webgl平台的unity程序生成失败

mergeInto(LibraryManager.library, {
    //获取产品id
    getProductIdStrFromJSCode: function(){
    	console.log("jslib getProductIdStrFromJSCode " + window.getModelIdFromJSCode());

    	var id = window.getModelIdFromJSCode();
        
    	var bufferSize = lengthBytesUTF8(id) + 1;
        var buffer = _malloc(bufferSize);
        stringToUTF8(id, buffer, bufferSize);
        return buffer;
    },
    });

16 和上面的内容类似的,jslib文件里面写到代码要符合javascript即js语法的规则,js是脚本语言,和lua类似,定义方法参数的时候不能够定义类型,如果在WebGL打包失败的时候,报错指定到了jslib所在的内容,例如

Unexpected identifier,,SyntaxError: Unexpected identifier    at Object.load (eval at globalEval
reprocessed source (you can run a js engine on this to get a clearer error message sometimes)

一般是里面的内容不符合js语法的规则,这时可以将jslib里面的代码复制,放到网页上的某个js脚本语法检查网页
在这里插入图片描述

17 Access to XMLHttpRequest at ‘’ from origin ‘https://seller.pre.mktail.cn’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
这个问题出现的原因是浏览器的同源策略问题,浏览器的同源策略会屏蔽掉一些非同源网站的请求,所以U3D发出的网络请求会被浏览器给阻隔掉
解决前端跨域:has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header…

18 在unity工程的 .jslib文件中,某个函数如果传字符串到外面,会像下图中的红框内部这样定义,这里说明一下,字符串参数为啥要用Pointer_stringfy处理,其实在c#传字符串给js的过程中,jslib里面的 js接收到的是字符串在内存中的地址,既然是地址的话,转换成字符串就需要Pointer_stringfy再处理一下,这样传到外面的才是真的字符串

在这里插入图片描述

19 关于unity程序结束的方法,目前unity在WebGL上面还不是很成熟,感觉还是有点bug,其中有个比较严重的就,程序在结束之后内存没有清除,这个bug unity官方在2018年中的时候在论坛 Unload Unity gameInstance and release heap memory 上面也承认了,目前的2019年中记录的解决方案参考下面网址
完全释放Unity WebGL内存
它的做法是将unity程序嵌套在iframe里面
可行性不清楚,我同事试了说不行,但是在这之前找过很多方法了,都是不行的,这里记录一下这种方法的存在。

20 WebGL打包报错 Unknown format, not a static library!
我这里是
stdout:
stderr:ERROR:root:D:\UnityProjects\Company\Assets\Company\ExhibitionHall\Origin\AVProVideo\Plugins\iOS\libAVProVideoiOS.a: Unknown format, not a static library!
原因是引用了AVPro这个插件,但是里面的ios第三方库libAVProVideoiOS.a设置成了AnyPlatform,导致WebGL打包的时候需要考虑这个库 ,但是识别不了,将识别平台改成ios即可
在这里插入图片描述

21 对于在jslib里面要获得前端函数的stiring类型的返回值,获得了之后需要有下面四行代码:

var bufferSize = lengthBytesUTF8(id) + 1;
        var buffer = _malloc(bufferSize);
        stringToUTF8(id, buffer, bufferSize);
        return buffer;

c#才能接收到字符串

mergeInto(LibraryManager.library, {
    //获取产品id
    getProductIdStrFromJSCode: function(){
    	console.log("jslib getProductIdStrFromJSCode " + window.getModelIdFromJSCode());

    	var id = window.getModelIdFromJSCode();
        
    	var bufferSize = lengthBytesUTF8(id) + 1;
        var buffer = _malloc(bufferSize);
        stringToUTF8(id, buffer, bufferSize);
        return buffer;
    },
    });

22 在WebGL端报错 Scene ‘DesiginSpace’ couldn’t be loaded because it has not been added to the build settings or the asset bundle has not been loaded. To add a scene to the build settings use the menu File->Build Settings ,
在这里插入图片描述
其实我在buildsettings里面是添加了DesiginSpace这个场景的,后来我几次将这个场景的位置调上或者调下都没效,发现场景名和存储场景路径中的某个文件夹名字一样, 就试着将场景名字改了一下,后面加个Scene,然后就可以了,估计是unity的bug。

在这里插入图片描述
StackOverflow也有人遇到了这样的错
How Do I Load A Assets Bundle
他的解决办法是重新将场景从build settings里面移出然后再添加进去
这个bug算是unity的bug了,我在关于unity的bug中也记录过
Unity 引擎报错集锦
因为在webgl出来的,其他人可能在webgl也会遇到,所以这里也说一下

23 unity的一些静态放置的UI在浏览器可能出现异常情况,对于这种问题需要在运行的时候将这种出现异常情况的UI用代码的方式进行设置。

24 missing function: _ZNSt2___212basic_stringIcNS_11char_traitsTcEENS_9allocatorIcEEE6__initEPKcj这个报错的出现的原因一般是某个第三方库缺少引用或者是双重引用,我这边的情况是我使用了TriLib插件后,导出没问题,但是导出的包运行的时候报这个错误,因为我使用的Trilib插件是阉割版的,它的WebGL的分支不存在,导致在WebGL的时候出现了这个错误。出现这种错误看不见他具体报错内容而是一堆乱码的时候,要想想最近做了什么,最后一个可行的分支版本与出错版本的最显著区别是什么地方,我这次的错误靠的是这个方法猜出来的。

在这里插入图片描述
下图的左边是正常版本的,右边是阉割版本的,可以看出严格版本里面没有WebGL这个分支
在这里插入图片描述

25这次遇到的还是关于Trilib插件的问题,在使用trilib1.8.7,并且在导出WebGL包的时候报错 unity版本是2019.3.1f1
Linking globals named ‘gzgetc’: symbol multiply defined!ERROR:root:Failed to run llvm optimizations:
参考链接: Unity 2019.1 TriLib WebGL build failed
链接的陈述大概是 插件里面的库文件对gzgetc的定义和unity的打包的库文件对gzgetc的定义重复了
如图所示
在这里插入图片描述
我没有按照链接里面的做,将trilib版本从1.8.7升级到了1.9.0,它里面的内容也变了
在这里插入图片描述
这次打包的时候就不报错了

26
Failed running “E:/AllUnity/2019.3.1f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\python.exe” -E “E:/AllUnity/2019.3.1f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\Emscripten\emcc” @“D:\UnityProjects\Company\Assets…\Temp\emcc_arguments.resp”

stdout:
stderr⚠️ unresolved symbol: FullScrnForEndClickERROR:root:‘E:/AllUnity/2019.3.1f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\Emscripten_FastComp_Win\binaryen\bin\asm2wasm D:\UnityProjects\Company\Temp\StagingArea\Data\linkresult_wasm\build.temp.asm.js --total-memory=33554432 --trap-mode=clamp -O3 --mem-init=D:\UnityProjects\Company\Temp\StagingArea\Data\linkresult_wasm\build.js.mem --mem-base=1024 --wasm-only --symbolmap=D:\UnityProjects\Company\Temp\StagingArea\Data\linkresult_wasm\build.js.symbols -o D:\UnityProjects\Company\Temp\StagingArea\Data\linkresult_wasm\build.wasm’ failed
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
这个报错是在打包时候报的错,仔细看内容,在里面有段话 stderr⚠️ unresolved symbol: FullScrnForEndClick 这个是关键的,
在我的工程里面,这个报错的原因是在jslib文件里面没有定义 FullScrnForEndClick 这个方法,但是在c#文件里面有引用到


#if UNITY_WEBGL
    [DllImport("__Internal")]
    private static extern void ForEndFullScrn();

    [DllImport("__Internal")]
    private static extern void FullScrnForEndClick();
#endif

所以把引用的去掉就可以了 ,或者在jslib里面定义这个方法

27 unity打包的时候如果设置了broti或者gzip这种压缩方式,则打包出来的程序放到服务器的时候,服务器需要设置相对应的解压方式,否则运行的时候会报错,ReferenceError:Cant find variable: UnityFramework

28

Failed to load resource: net::ERR_HTTP2_PROTOCOL_ERROR

听说是http2的关系。淘宝客服说可以关闭掉

29

会出现加载很久的情况,给出的提示是:

You can reduce startup time if you configure your web server to
add “Content-Encoding: gzip” response header when serving “Build/WebAR-WebGLTest.wasm.unityweb” file.

30

The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.

带有音频的视频或者其他元素,在WebGL的移动端或者PC端都需要用户输入响应。PC端是通过鼠标点击,移动端是通过手指触控做到用户输入响应。

31

Exception:
 C:\Program Files\Unity\Hub\Editor\2019.4.36f1c1\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe 
did not run properly!

环境变量或者硬盘命名或者我的文档或者打包路径中有中文名称。

32 一些粒子系统在WebGL下的表现可能不尽如人意,这是Unity对WebGL的兼容测试较少的原因。在更改参数测试了几次都没有效果的情况下,最好是用其他方法代替粒子系统,参考网址 Unity particles not showing on WebGL

在这里插入图片描述

RangeError:Maximum call stack size exceeded. null function or function signature mismatch

我在服务器疯狂从回收站还原删除 再删除再还原 在谷歌浏览器就出现这些报错。
重启阿里云服务器不行 清楚手机浏览器缓存就可以了。但是微信浏览器不能清楚缓存,因为找不到这个选项按钮入口。

  1. exception thrown: RuntimeError: unreachable,RuntimeError: unreachable这其实对应了开发中最最常见的报错NullReference。所以某个地方出现了这个报错之后,最好还是到程序中根据对应的流程去复现这个报错。

TypeError: Failed to fetchat instantiateAsync (blob:https://www.wenginning.love/e2d10002-ac06-49e3-912d-5blf12alcb4d:3:18419)
at createWasm (blob:https://www.wenginning.love/e2d10002-ac06-49e3-912d-5blf12alcb4d:3:19029)
at Array.unityFramework (blob:https://www.wenginning.love/e2d10002ac06-49e3-912d-5blf12alcb4d:3:304158at https://www.wenqinning.love/WebAR/Build/4.8.10.24.loader.js:l:6595

我的出现原因是WebGl程序在加载过程中出现了wifi断开导致的。是wifi自己断开的原因。
在这里插入图片描述

  1. 谷歌浏览器报错

Get https://www.wenqinning.love/WebAR/Build/4.19.13.56.data 404 (Not Found)

这是放在服务器程序丢失了或者找不到造成的。

KeyNotFoundException: The given key"开始页船3 was not present in the dictionary.

在这里插入图片描述
在浏览器里面清除缓存即可。

Building Library\Bee\artifacts\WebGL\build\debug_WebGL_wasm\build.js failed with output:
Traceback (most recent call last):
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emcc2.py", line 3571, in <module>
    sys.exit(main(sys.argv))
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emcc2.py", line 3564, in main
    ret = run(args)
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emcc2.py", line 1082, in run
    phase_post_link(options, wasm_target, wasm_target, target)
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\contextlib.py", line 74, in inner
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emcc2.py", line 2400, in phase_post_link
    phase_emscript(options, in_wasm, wasm_target, memfile)
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\contextlib.py", line 74, in inner
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emcc2.py", line 2428, in phase_emscript
    emscripten.run(in_wasm, wasm_target, final_js, memfile)
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emscripten.py", line 830, in run
    emscript(in_wasm, out_wasm, outfile_js, memfile, shared.DEBUG)
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emscripten.py", line 308, in emscript
    glue, forwarded_data = compile_settings()
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\emscripten.py", line 178, in compile_settings
    cwd=path_from_root('src'), env=env)
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\tools\shared.py", line 216, in run_js_tool
    return check_call(command, *args, **kw).stdout
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\tools\shared.py", line 202, in check_call
    return run_process(cmd, *args, **kw)
  File "C:\Program Files\Unity\Hub\Editor\2021.3.8f1c1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emscripten\tools\shared.py", line 97, in run_process
    ret = subprocess.run(cmd, check=check, input=input, *args, **kw)
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\subprocess.py", line 474, in run
  File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\subprocess.py", line 926, in communicate
UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 393654: illegal multibyte sequence
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

在打包的时候,jslib里面不能够有中文。注释也是不行的。否则就会报这个错。

  1. WebGL打包的时候只有
    在这里插入图片描述
    这是因为index.html与实际加载的文件名字不一样。
    在这里插入图片描述
    在这里插入图片描述
    在打包的时候文件夹名字与index里面的一致即可。

  2. 404 Not Found

在这里插入图片描述
这类似于服务器加载程序的时候找不到要加载的js文件。

Failed to load resource: the server responded with a status of 404 (Not Found)

然后是加载完成后报的这个错。

mp_test.loader.js:1 Uncaught (in promise) RangeError: Offset is outside the bounds of the DataView
at DataView.getUint32 ()

  1. 这种报错出现的原因是Unity中index.html的修改没有完成导致的,路径修改不对

GET https://hssczl.gd-txhn.com/WebGLPackages/5.10.17.29/temp_test/Build/temp_test.loader.js net::ERR_ABORTED 404 (Not Found)

在这里插入图片描述

需要修改成

在这里插入图片描述
即把路径改成到Build之前的每个//之间的都用…代替。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity WebGL错误集锦 的相关文章

  • c#获取cpu序列号

  • Unity 分块延迟渲染01 (TBDR)

    现代移动端图形体系结构的概述 现代SoC通常会同时集成CPU和GPU CPU被用于处理需要低内存延迟的序列 大量分支的数据集 其晶体管用于流控制和数据缓存 GPU为处理大型 未分支的数据集 如3D渲染 晶体管专用于寄存器和算术逻辑单元 而不
  • Unity 粒子特效、材质发光 HDR ShaderGraph图文教程[完成lit发光设置]

    效果如图 准备工作 在hdr模式下 关闭Directional Light 相机设置 移动球挂一个点光源作为子节点 设置自行调节 0 创建移动球的材质及shader shader gt 在Project Create Shader Grap
  • FBX导入Unity中模型没有材质的处理

    一 3dMax导出FBX时的注意事项 导出时 确保maps文件存在 里面放着fbx用到的image 二 在Unity中的设置 1 文件拖入Unity的Assets文件夹中 2 查看模型的材质是否存在 如下所示 材质为None 此时拖入sce
  • UnityVR--组件3--Line Renderer--线性渲染

    目录 线性渲染组件简介 绘制线条Line Renderer组件介绍 绘制拖尾Trail Renderer组件介绍 应用1 使用Line Renderer绘制线段 应用1实现 使用系统工具或自定义工具绘制线段 应用2 Trail Render
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • unity dots jobSystem 记录

    Looking for a way to get started writing safe multithreaded code Learn the principles behind our Job System and how it w
  • unity3d 自定义的图片无法放入source image中

    须将图片的texture type改为 sprite
  • 【原神游戏开发日志1】缘起

    原神游戏开发日志1 缘起 版权声明 本文为 优梦创客 原创文章 您可以自由转载 但必须加入完整的版权声明 文章内容不得删减 修改 演绎 相关学习资源见文末 大家好 最近看到原神在TGA上频频获奖 作为一个14年经验的游戏开发行业的老兵 我就
  • mixamo根动画导入UE5问题:滑铲

    最近想做一个跑酷游戏 从mixamo下载滑铲动作后 出了很多动画的问题 花了两周时间 终于是把所有的问题基本上都解决了 常见问题 1 动画序列 人物不移动 2 动画序列 人物移动朝向错误 3 蒙太奇 人物移动后会被拉回 4 蒙太奇 动画移动
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • VS2022 | 显示Unreal Engine日志

    VS2022 显示Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志
  • 游戏开发常见操作梳理之NPC任务系统

    多数游戏存在任务系统 接下来介绍通过NPC触发任务的游戏制作代码 using System Collections using System Collections Generic using UnityEngine
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文
  • 游戏开发常见操作系列之敌人系统的开发一(U3D)

    在开发游戏的过程中 我们常常会出现一些敌人攻击我们玩家 并且实现掉血以及死亡的现象 敌人还会源源不断地生成 这是怎么制作的呢 接下来为大家提供方法 其中使用了NGUI 后续会更新其它方法 敬请期待 使用HUDText实现扣血时显示文本 直接

随机推荐

  • 常见的距离算法和相似度(相关系数)计算方法

    摘要 1 常见的距离算法 1 1欧几里得距离 Euclidean Distance 以及欧式距离的标准化 Standardized Euclidean distance 1 2马哈拉诺比斯距离 Mahalanobis Distance 1
  • vue3 ---- 递归组件生成menu菜单 && 路由守卫鉴权

    目录 递归组件 el menu 父组件 子组件 路由 Vue路由守卫实现登录鉴权 全局守卫 路由独享的守卫 组件内的守卫 完整的导航解析流程 菜单权限 按钮权限 对于一些有规律的DOM结构 如果我们再一遍遍的编写同样的代码 显然代码是比较繁
  • IDEA切换分支导致项目异常, 部分类爆红问题解决

    关于idea切换分支导致项目异常爆红的方式解决两种办法 1 maven 并没有及时刷新 所以 当我们第一时间出现这个问题的时候 首选是刷新maven 如图所示 2 如果刷新mavne 还是没有解决idea 项目爆红的情况的话 那我们就需要考
  • 计算机不能创建用户,Windows10系统无法创建新用户该怎么办?

    由于工作需要 需要对同一台计算机创建多个用户帐户 Windows7操作系统创建新用户的方法很简单 简单几步就能够轻松完成创建 参照Windows7操作系统创建新用户的步骤 发现并不适用于Windows10操作系统 系统会提示需要登录Micr
  • CocosCreator波浪Shader

    waveEffect effect Copyright c 2017 2020 Xiamen Yaji Software Co Ltd CCEffect techniques passes vert sprite vs vert frag
  • Serverless 的前世今生

    作者 阿里云用户组 从云计算到 Serverless 架构 大家好 我是阿里云 Serverless 产品经理刘宇 很高兴可以和大家一起探索 Serverless 架构的前世今生 从云计算到云原生再到 Serverless 架构 技术飞速发
  • 【推荐算法】双塔模型代码(tensorflow)

    推荐算法 双塔模型介绍 MachineCYL的博客 CSDN博客 上文介绍了双塔模型的原理和结构 这篇介绍一下双塔模型的代码实现 我使用的是tensorflow来实现双塔模型和模型训练 一 前期准备 tensorflow使用的版本是2 0
  • 正激拓扑的复位电路

    正激拓扑的复位电路 1 杂谈 2 原理简介 3 分类 3 1 有源钳位 3 2 绕组复位 3 3 RCD复位 3 4 谐振复位 1 杂谈 我发现我有个最大的缺点是不会讲话 每次跟不熟悉的人讲话或者汇报时 就毫无逻辑 紧张的要死 被讨厌的勇气
  • Navicat设置id自增,并随时设置自增的起始值

    一 问题背景 有时候数据里面的表的id为 1 4 13 15等等 如下图 怎么重新设置自增的起始值 使它变成每个增加1 而不是散列的数 如下效果 二 解决方法 选中要修改的表 点击设计表 如下 然后点击 选项 在自动递增那里改为1即可 点击
  • 2022全国职业技能大赛-网络安全赛题解析总结④(超详细)

    2022全国职业技能大赛 网络安全赛题解析总结 自己得思路 模块A 基础设施设置与安全加固 20分 模块B 网络安全事件响应 数字取证调查和应用安全 40分 模块C CTF夺旗 攻击 20分 模块D CTF夺旗 防御 20分 有什么不懂得可
  • MATLAB实现PSO-SVM多输入单输出回归预测(粒子群算法优化支持向量机)

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • 循环 for while do..while 以及break和continue

    循环 for 双重for while dowhile continue break 一 for循环 被循环的执行语句为循环体 是否继续执行取决于终止条件语句 所以 循环语句由 循环体和循环的终止条件组成的语句 语句结构 for 初始化变量
  • 桌面怎么设置 计算机 网络连接,电脑桌面的本地连接ip地址可以设置吗_本地连接ip地址设置方法 - 驱动管家...

    1 首先在Win7桌面上找到 网络 入口 如下图 进入Win7网络 2 进入网络之后我们再点击顶部的 网络共享中心 如下图 进入Win7网络共享中心 3 进入Win7网络共享中心之后 我们再点击左侧的 更改网络适配器 如下图 选择更改网络适
  • 经典,一文讲透ESD原理和设计

    一直想给大家讲讲ESD的理论 很经典 但是由于理论性太强 任何理论都是一环套一环的 如果你不会画鸡蛋 注定了你就不会画大卫 先来谈静电放电 ESD Electrostatic Discharge 是什么 这应该是造成所有电子元器件或集成电路
  • Ubuntu20.04通过rsync和inotify实现定时备份与实时备份

    通过rsync和inotify实现定时备份与实时备份 为了避免主服务单点故障 可以将数据备份到远程备份机器 可以使用rsync工具同步Jenkins home到远程 可以利用rsync工具的 exclude from FILE 功能 定制一
  • KVM热迁移

    KVM热迁移 介绍 KVM热迁移的前提是拥有共享存储 以下通过NFS实现KVM热迁移 迁移过程 将一处于运行状态的KVM虚拟机从节点kvm 01迁移到kvm 02后继续运行 准备 主机准备 hostname IP地址 系统 配置 kvm 0
  • Docker 国内镜像地址

    http f1361db2 m daocloud io http hub mirror c 163 com https docker mirrors ustc edu cn
  • c++中的类模板

    C 的类模板为生成通用的类声明提供了一种更好的方法 模板提供参数化类型 即能够将类型名作为参数传递给接收方来建立类或者函数 一 定义类模板 include
  • IndexError: index 5 is out of bounds for axis 1 with size 5

    keras中报错 IndexError index 5 is out of bounds for axis 1 with size 5 原因 大概率是你的数据集label没有设置好 keras中数据集标签需要从0开始 并且连续 类似于下图这
  • Unity WebGL错误集锦

    ips 0 Unity的PlayerSettings的otherSettings或者Publish Settings里面的Enable Exceptions里面选择Full StackTrace 可以在打出的包中的浏览器的webgl打印出错