【问题标题】:Unity WebGL using WebAssembly StreamingUnity WebGL 使用 WebAssembly 流式传输
【发布时间】:2020-10-13 02:51:54
【问题描述】:

我正在尝试使用 webassembly 流功能,但它不起作用。
我确实遵循了用于 WebAssembly 流的服务器配置的统一文档说明。 https://docs.unity3d.com/2019.3/Documentation/Manual/Webgl-Server-configuration-for-WebAssembly-streaming.html

我正在使用 Unity 2019.2.20f1

在 Unity 播放器设置中,我将压缩格式设置为 gzip 并启用了 WebAssembly 流。

我将 .htaccess 文件添加到 Build 文件夹中。
以下是.htaccess文件的内容

<IfModule mod_mime.c>
  AddEncoding gzip .unityweb
  AddType application/wasm .wasm
  AddEncoding gzip .wasm
  AddOutputFilterByType DEFLATE application/wasm
</IfModule>

我也加了

application/wasm    wasm 

到 /etc/mime.type

但我收到此错误。

wasm streaming compile failed: CompileError: WebAssembly.instantiateStreaming(): expected magic word 00 61 73 6d, found 1f 8b 08 18 @+0

在设置了所需的修改后,我确实重新启动了服务。

我的 webgl 构建在没有 webassembly 流功能的情况下完美运行。
有谁知道这个问题以及我做错了什么?

【问题讨论】:

    标签: webassembly unity-webgl


    【解决方案1】:

    对于那些有同样问题的人,我解决了这个。

    首先您需要在 httpd.conf 文件中启用 AllowOverride 才能使用 .htaccess 文件。
    就我而言,它位于 /etc/httpd/conf
    并使用vi httpd.conf 命令打开 httpd.conf 文件
    并使用/.htaccess 命令找到.htaccess

    会有&lt;Directory "/var/www"&gt;&lt;Directory "/var/www/html"&gt;
    你会看到他们两个的 AllowOverrides 都设置为 None。
    您需要将它们更改为全部。

    只需点击i 即可进入插入模式,将AllowOverride None 更改为AllowOverride All
    确保同时更改 /var/www/var/www/html
    完成后,点击ESC 并输入:wq 保存修改并退出。

    以下 .htaccess 文件不起作用。

    <IfModule mod_mime.c>
      AddEncoding gzip .unityweb
      AddType application/wasm .wasm
      AddEncoding gzip .wasm
      AddOutputFilterByType DEFLATE application/wasm
    </IfModule>
    

    如下更改 .htaccess 文件即可。

    Options +FollowSymLinks
    RewriteEngine on
    <Files "*.wasm">
        AddType application/wasm .wasm
        AddEncoding gzip wasm
    </Files>
    <Files "*.unityweb">
        AddEncoding gzip unityweb
    </Files>
    

    如果您使用的是 brotli,请将 gzip 更改为 br
    最后,您必须使用service httpd restart 命令重新启动httpd 服务。
    繁荣!现在可以了。

    关于加载速度,我的意思是,它肯定比非 WebAssembly 流式传输更快。
    但我的项目总共有 50mb 的数据大小,差异很小。
    因此,如果您的项目需要加载大量数据,您应该尝试一下。
    但如果它不是那么大,不要指望这里有什么戏剧性的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      相关资源
      最近更新 更多