Unity 发布WebGL在本地浏览器运行

有些项目要求发布WebGL版本,官方目前兼容性最好的浏览器是火狐和谷歌浏览器,发布成功之后使用浏览器在本地打开,打开的时候出现“It seems your browser does not support running Unity WebGL content from file”报错。

本文提供两种方法

方法一、Mozilla firefox(火狐浏览器)开启方法,需要开启一下WebGL的支持。

firefox的用户请在浏览器的地址栏输入“about:config”,回车后:
1、在过滤器(filter)中搜索“webgl”
将webgl.force-enabled设置为true
将webgl.disabled设置为false
2、在过滤器(filter)中搜索“security.fileuri.strict_origin_policy”
将security.fileuri.strict_origin_policy设置为false

关闭目前开启的所有firefox窗口,然后重新启动firefox。

其中前两个设置是强制开启webgl支持,最后一个security.fileuri.strict_origin_policy的设置是允许从本地载入资源,如果你不是webgl的开发者,不需要开发调试webgl,只是想要看一下webgl的demo,那你可以不设置此项。

在这里插入图片描述

方法二、可以把本机当作服务器在本地搭建一个IIS

以上报错是无法打开本地链接,需把网页发布成可打开的网址放在服务器上才行,在不同的浏览器运行webgl都有不同的问题,不同浏览器设置又不一样,每次要设置就比较麻烦,我们可以把发布好的html文件部署在本地IIS网站里,这样就可以在不同浏览器里面访问就没有问题了

1、开启IIS管理器

打开电脑控制面板-程序-启动或关闭Windows功能

在这里插入图片描述

检查下电脑的网页服务有没有开启,需全部打开,加号底下的也是

在这里插入图片描述

2、设置IIS管理器

电脑右键“管理”,进入计算机管理,选择IIS管理器,选择网站,右键添加网站

在这里插入图片描述

设置相关配置

网站名称:随便填一个

物理路径:Unity打包出来的webgl在电脑的地址

端口:建议往上填写,9000,10000都行,不要使用80,避免与其他网页冲突

在这里插入图片描述

设置好之后点击确定

3、增加web.config配置文件在webgl同路径下

需要在发布的文件根目录下放入一个Web.config配置文件。文件的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>  
  <system.webServer>
    <httpProtocol>
      <!-- 允许跨域配置 -->
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="X-Requested-With,Content-Type,Authorization" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE,OPTIONS" />
        <add name="Access-Control-Allow-Credentials" value="true" />
      </customHeaders>
    </httpProtocol>
        <staticContent>
            <remove fileExtension=".mem" />  
            <remove fileExtension=".data" />  
            <remove fileExtension=".unity3d" />  
            <remove fileExtension=".jsbr" />  
            <remove fileExtension=".membr" />  
            <remove fileExtension=".databr" />  
            <remove fileExtension=".unity3dbr" />  
            <remove fileExtension=".jsgz" />  
            <remove fileExtension=".memgz" />  
            <remove fileExtension=".datagz" />  
            <remove fileExtension=".unity3dgz" />  
            <remove fileExtension=".json" />  
            <remove fileExtension=".unityweb" />  
           
            <mimeMap fileExtension=".mem" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".data" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".unity3d" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".jsbr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".membr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".databr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".unity3dbr" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".jsgz" mimeType="application/x-javascript; charset=UTF-8" />  
            <mimeMap fileExtension=".memgz" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".datagz" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".unity3dgz" mimeType="application/octet-stream" />  
            <mimeMap fileExtension=".json" mimeType="application/json; charset=UTF-8" />  
            <mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />  
        </staticContent>
  </system.webServer>
</configuration>

4、使用IP加端口号的网络地址访问就没问题了

这样我们再通过浏览器访问就会发现一切正常。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44733991/article/details/123231139
今日推荐