Unity WebGL报错精选解决方案助你开发之路少踩坑

周周的Unity小屋 2024-08-27 13:03:01 阅读 61

总结WebGL报错解决方案

一、前言二、WebGL报错精选1.浏览器不支持没有Web服务器下访问本地URL网页解决方法

2.Unable to parse xxx.xxx!无法解析某某文件解决方法(针对报错信息1)解决方法(针对报错信息2)

3.HTTP 错误 404.11 - Not Found.请求筛选模块被配置为拒绝包含双重转义序列的请求。解决方法

三、总结

一、前言

工作至今,基于Unity开发过不少WebGL相关的项目,踩过不少坑也遇到各种报错,所幸也都能找到合适的解决方案。网上资料零零散散,今天有感想在此做个关于Unity开发WebGL总结,一是给自己总结经验教训,二是温故知新,三是希望能够给道上的朋友带来些许帮助。

二、WebGL报错精选

1.浏览器不支持没有Web服务器下访问本地URL网页

报错信息:Failed to download file Build/Build.data.gz. Loading web pages via a file:// URL without a web server is not supported by this browser. Please use a local development web server to host Unity content, or use the Unity Build and Run option.

解决方法

报错信息明确指出没有web服务器,那我们就搭建一个web服务器,一般为了快速测试,搭建一个本地IIS服务器即可。

确保开启网络服务功能(控制面板–程序–启用或关闭Windows功能–Internet Information Services)

在这里插入图片描述

把你的webgl网页添加IIS服务器网站列表下

在这里插入图片描述

现在你就可以在你的浏览器上访问你的webgl了。

在这里插入图片描述

可以点击上图所示浏览,也可以直接在浏览器输入http://你的ip:端口号,或者http://localhost:8070/http:127.0.0.1:8070。

2.Unable to parse xxx.xxx!无法解析某某文件

报错信息1:Unable to parse Build/Build.framework.js.unityweb! The file is corrupt, or compression was misconfigured? (check Content-Encoding HTTP Response Header on web server)

报错信息2:Unable to parse Build/Build.framework.js.gz! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header “Content-Encoding: gzip” present. Check browser Console and Devtools Network tab to debug

解决方法(针对报错信息1)

这个报错取决于你的压缩构建方法,以及你项目中使用到的某些文件,在web服务器上没有正确配置,所以无法正确解析。

一般我们会去写一个配置文件放在与Index.html文件同级目录下,服务器会自动读取这个文件配置。

新建配置文件

在index.html文件同级目录下,右键新建文本文件,命名为web.config将报错的.xx文件后缀,如.gz、.unityweb、.abc等添加为静态媒体类型

<code><?xml version="1.0" encoding="UTF-8"?>code>

<configuration>

<system.webServer>

<staticContent>

<mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />code>

</staticContent>

<security>

<requestFiltering allowDoubleEscaping="True"/>code>

</security>

</system.webServer>

</configuration>

在这里插入图片描述

重新刷新网页即可。

解决方法(针对报错信息2)

依次打开Build Settings–Player Settings–WebGL Setting(图标)–Publishing Settings 勾选Decompression Fallback。

在这里插入图片描述

再次打包,有可能还会报这个错:Unable to load file Build/Build.framework.js.unityweb! Check that the file exists on the remote server. (also check browser Console and Devtools Network tab to debug)

可以按照报错1的解决方法添加配置文件即可。

3.HTTP 错误 404.11 - Not Found.请求筛选模块被配置为拒绝包含双重转义序列的请求。

在这里插入图片描述

解决方法

这个报错其实是因为我们加载的文件里有符合“+”,解决也很简单,去掉+号一了百了。如果一定需要+号也可以。那就去配置文件添加关于allowDoubleEscaping 的设置。

<code><?xml version="1.0" encoding="UTF-8"?>code>

<configuration>

<system.webServer>

<staticContent>

<mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />code>

</staticContent>

</system.webServer>

<security>

<requestFiltering allowDoubleEscaping="True"/>code>

</security>

</configuration>

在这里插入图片描述

三、总结

当你准备使用Unity开发WebGL项目时,如果可以先看一下官方文档,也许会让你少走不少弯路哦。

Unity官方WebGL开发入门文档

当然,你说你头硬不怕,直接上手干,那就希望上述问题的解决方法能帮助到你。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。