dav*_*803 1 webassembly unity-webgl
我正在尝试使用 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>
Run Code Online (Sandbox Code Playgroud)
我还补充说
application/wasm wasm
Run Code Online (Sandbox Code Playgroud)
到 /etc/mime.type
但我收到此错误。
wasm streaming compile failed: CompileError: WebAssembly.instantiateStreaming(): expected magic word 00 61 73 6d, found 1f 8b 08 18 @+0
Run Code Online (Sandbox Code Playgroud)
设置所需的修改后,我确实重新启动了服务。
我的 webgl 构建在没有 webassembly 流功能的情况下完美运行。
有没有人知道这个问题以及我做错了什么?
对于那些有同样问题的人,我解决了这个问题。
首先您需要在 httpd.conf 文件中启用 AllowOverride 以使用 .htaccess 文件。
在我的情况下,它位于/ etc / httpd的/ conf目录
并使用打开httpd.conf文件vi httpd.conf命令
,找到的.htaccess使用/.htaccess命令
将会有<Directory "/var/www">并且<Directory "/var/www/html">
您将看到它们的 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>
Run Code Online (Sandbox Code Playgroud)
更改 .htaccess 文件如下将完成这项工作。
Options +FollowSymLinks
RewriteEngine on
<Files "*.wasm">
AddType application/wasm .wasm
AddEncoding gzip wasm
</Files>
<Files "*.unityweb">
AddEncoding gzip unityweb
</Files>
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 brotli,请更改gzip为br
最后,您必须使用service httpd restart命令重新启动 httpd 服务。
繁荣!它现在有效。
关于加载速度,我的意思是,它肯定比非 WebAssembly Streaming 快。
但我的项目总共有 50mb 的数据大小,差异很小。
因此,如果您的项目需要加载大量数据,您应该尝试一下。
但如果它不是那么大,不要指望这里有什么戏剧性。
| 归档时间: |
|
| 查看次数: |
4555 次 |
| 最近记录: |