Unity3d的WebGL发布和IIS部署

时间:2024-03-25 21:26:24

这两天在研究如何将Unity3d项目发布为html,并将网页发布到服务器上使得外部网络/设备也能进行共享。

总结整个过程需要解决的2个关键问题是:

  1. 如何让移动端设备加载WebGL
  2. 如何构建并部署IIS

下面我结合个人实践和几篇可行的博客来将整个过程梳理一遍:

一、构建一个Unity的WebGL发布版本

首先是在安装unity的时候应该框选WebGL选项,如果在安装时漏了勾选也可以在build setting里找到WebGL模块,然后点击Platform Module Installation安装。

在项目完成后building的时候选择WebGL,直接build即可,完成后会生成一个名为index的html文件,一个Build文件夹,一个TemplateData文件夹。

对于早期版本(如unity5.4.0),build完成后会生成一个Release文件夹、一个TemplateData文件夹。

 

二、删除关键代码段

根据Unity3d的官方文档(目前是2018.9.12修改的版本)中的叙述,一些移动端是不支持WebGL的功能的

Unity3d的WebGL发布和IIS部署

就我实验的设备(Samsung GALAXY S9)而言是可以用一些浏览器正常加载WebGL的,不过在加载前需要去掉.js文档中的一个关于移动端的判定。

这篇博文介绍了相关内容,只是因为经过版本更迭,.js文件进行了修改,现在需要删去的语句是Build/UnityLoader.js的770行左右的一个条件语句,即下图中注释掉的语句。

Unity3d的WebGL发布和IIS部署

通过的实验,如果不注释掉相关语句,在移动端设备运行网页时将不会加载unity的WebGL模块。

 

三、构建IIS

构建IIS的过程在网上有很多帖子,感兴趣可以进行查阅。

这里我本着比较简洁和准确的原则做了整理,这篇博客的方法很细致,跟着做到输入http://localhost出现IIS欢迎界面即可。

 

四、创建网站并开放

在控制面板中切换成大图标,找到“管理工具”双击,打开Internet Information Services (IIS)管理器。

跟着博客做到第3步完成。注意添加MIME类型的时候要选中的是新建的网站,添加的名字和属性在博客的图片中(unity3d和unityweb那个)。修改完后会发现在项目物理位置下多了一个web.config。

对于早期版本(如unity5.4.0),还要对web.config进行的设置,否则会在加载前报一个头部检查的异常(incorrect header check ),根据unity论坛上的一个回答,设置方法如下:

在web.config文件中相应位置添加如下语句

<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".mem" />
<mimeMap fileExtension=".mem" mimeType="application/octet-stream" />
<remove fileExtension=".data" />
<mimeMap fileExtension=".data" mimeType="application/octet-stream" />
<remove fileExtension=".memgz" />
<mimeMap fileExtension=".memgz" mimeType="application/octet-stream" />
<remove fileExtension=".datagz" />
<mimeMap fileExtension=".datagz" mimeType="application/octet-stream" />
<remove fileExtension=".unity3dgz" />
<mimeMap fileExtension=".unity3dgz" mimeType="application/octet-stream" />
<remove fileExtension=".jsgz" />
<mimeMap fileExtension=".jsgz" mimeType="application/x-javascript; charset=UTF-8" />
</staticContent>
</system.webServer>
</configuration>

 

最后参考这篇文章对服务器进行开放即可。

 

五、运行

完成后用命令行(win+R,输入cmd)查询本机ip(ipconfig/all),最后的网址为:

                                                                   本机ip:开放的端口号

注意在加载时刷新,第一次往往加载较慢。通过实验现在已经可以运行的各种设备上的浏览器如下:

PC端:chrome、firefox

Android:firefox、360、chrome、qq

目前手头的ios设备(mini2、iPhone7P)可以加载但无法运行

 

欢迎交流和指正。