4. WebGL: Deploying compressed builds

部署压缩构建

当您在发布模式下构建WebGL项目时(请参Publishing builds(阅发布构建)),Unity会压缩构建输出文件以减少构建的下载大小。您可以从发布设置(菜单:Edit > Project Settings > Player > Publishing Settings)中的压缩格式选项中选择使用的压缩类型:

  • gzip: 这是默认选项。 gzip文件比Brotli文件大,但构建速度更快,并且由http和https上的所有浏览器本地支持。
  • Brotli: Brotli压缩提供了最佳的压缩比。 Brotli压缩文件比gzip小得多,但需要很长时间才能压缩,从而增加了发布版本的迭代时间。 Chrome和Firefox通过https原生支持Brotli压缩(有关更多信息,请参阅 WebGL browser compatibility(WebGL浏览器兼容性))。
  • Disabled: 这会禁用压缩。如果您想在后处理脚本中实现自己的压缩,请使用此选项。

压缩构建的Unity可以在任何浏览器上构建工作。 Unity包含一个用JavaScript编写的软件解压缩程序,当服务器未启用http传输级别的压缩时,它将回退到原来的位置。

Advanced: Native browser decompression 高级:本地浏览器解压缩

在下载构建数据时,浏览器可以处理Unity本身的解压缩。这样做的好处是避免了JavaScript文件解压引起的额外延迟,从而缩短了启动时间。为了让浏览器本地处理解​​压缩,需要将Web服务器配置为使用适当的http头来提供压缩文件:这些告诉浏览器数据使用gzip或Brotli进行压缩,以便在传输数据时对数据进行解压缩。仅在https上支持Firefox和Chrome支持Brotli压缩,而所有浏览器都支持gzip压缩。请参阅WebGL浏览器兼容性了解更多信息。

Setting up web servers 设置网络服务器

本地浏览器解压缩的设置过程取决于您的Web服务器。本页面上的说明适用于两个最常见的Web服务器ApacheIIS。请注意,这些设计用于默认设置,但可能需要进行调整才能匹配您的特定配置。尤其是,如果您已有其他服务器端配置来压缩托管文件,则可能会出现问题,这可能会影响此设置。其基本思想是将一个Content-Encoding头添加到服务器响应中,对应于构建时使用的压缩类型。这将允许浏览器在下载过程中本地和异步执行解压缩。

Apache

Apache服务器使用不可见的.htaccess文件进行服务器配置。下面的代码显示了可用于实施本地浏览器解压缩的.htaccess文件的示例。请注意,Apache服务器配置设置是可选的。

对于gzip压缩版本,将以下.htaccess文件放入Build子文件夹中:

<IfModule mod_mime.c>
  AddEncoding gzip .unityweb
</IfModule>

对于brotli压缩版本,将以下.htaccess文件放入您的Build子文件夹中:

<IfModule mod_mime.c>
  AddEncoding br .unityweb
</IfModule>

IIS

必要的IIS服务器配置步骤:

默认情况下,IIS服务器不提供未知MIME类型的静态内容。为了使Unity在IIS上构建工作,首先需要将.unityweb扩展与应用程序/八位字节流内容类型关联。有两种方法可以实现这一点:

使用IIS管理器界面:在IIS管理器面板中选择您的网站,打开MIME类型功能并选择添加...操作。将.unityweb设置为文件扩展名,将application/octet-stream设置为MIME类型,单击确定。

使用服务器配置文件:IIS使用web.config文件进行服务器配置。这些配置文件反映了IIS管理器为特定文件夹所做的所有更改。为了将application/octet-stream MIME类型与.unityweb扩展相关联,可以使用以下web.config文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
            <staticContent>
            <remove fileExtension=".unityweb" />
<mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />
            </staticContent>
    </system.webServer>
</configuration>

请注意,配置文件会影响所有服务器子文件夹,因此只需在服务器根文件夹中将.unityweb扩展名的MIME类型设置为一次即可。

可选的IIS服务器配置步骤:

为了加快构建启动时间,您可以选择使用以下配置文件。请注意,为了使用此设置,您需要安装Microsoft的IIS URL Rewrite IIS module;否则,浏览器将抛出500内部服务器错误。

对于gzip压缩版本,将以下web.config文件放入Build子文件夹中:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
            <staticContent>
                    <remove fileExtension=".unityweb" />
                    <mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />
            </staticContent>
            <rewrite>
                    <outboundRules>
                        <rule name="Append gzip Content-Encoding header">
                            <match serverVariable="RESPONSE_Content-Encoding" pattern=".*" />
                            <conditions>
                                    <add input="{REQUEST_FILENAME}" pattern="\.unityweb$" />
                            </conditions>
                            <action type="Rewrite" value="gzip" />
                        </rule>
                    </outboundRules>
            </rewrite>
    </system.webServer>
</configuration>

对于brotli压缩版本,将以下web.config文件放入Build子文件夹中:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
            <staticContent>
                    <remove fileExtension=".unityweb" />
                    <mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />
            </staticContent>
            <rewrite>
                    <outboundRules>
                        <rule name="Append br Content-Encoding header">
                            <match serverVariable="RESPONSE_Content-Encoding" pattern=".*" />
                            <conditions>
                                    <add input="{REQUEST_FILENAME}" pattern="\.unityweb$" />
                            </conditions>
                            <action type="Rewrite" value="br" />
                        </rule>
                    </outboundRules>
            </rewrite>
    </system.webServer>
</configuration>

请注意,当内容类型已在服务器目录层次结构中的较高级别上覆盖内容类型时,需要<remove fileExtension =“。unityweb”/>行来处理这种情况,否则可能导致服务器异常。

4

Unity WebGL 中文文档 Unity 2018.1.b
1. WebGL
2. webGL Browser Compatibility
3. Building and running a WebGL project
4. WebGL: Deploying compressed builds
5. Debugging and trouble shooting WebGL builds
6. WebGL Graphics
7. WebGL Networking
8. Using Audio In WebGL
9. WebGL performance considerations
10. WebGL: Interacting with browser scripting
11. Using WebGL Templates
12. Cursor locking and full-screen mode in WebGL
13. Input in WebGL

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容