You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity WebGL部署报错:IndexedDB加载Game.data.br失败(Array buffer分配错误)

解决Unity WebGL部署后大文件加载的IndexedDB ArrayBuffer错误

1. 直接禁用IndexedDB缓存

Unity WebGL默认会把Game.data这类大文件存进IndexedDB,但浏览器对单文件的内存分配有上限,550MB的文件很容易触发这个错误。直接跳过缓存加载:

  • 找到构建后的index.html,在Unity初始化的config里加一行:
    config.disableIndexedDB = true;
    
    放在createUnityInstance调用前或者config定义的地方都可以,这样游戏会直接从服务器加载文件,不走IndexedDB缓存。

2. 修复Nginx的大文件传输配置

默认Nginx的配置可能没针对超大文件优化,改一下站点配置文件(比如/etc/nginx/sites-available/your-webgame.conf):

  • 加上这些参数,确保大文件能分块传输,缓存头也正常:
    server {
      # 保留你原来的配置,新增/修改下面的
      client_max_body_size 1G;
      proxy_buffering off;
      sendfile on;
      tcp_nopush on;
      tcp_nodelay on;
    
      location ~* \.br$ {
        add_header Content-Encoding br;
        add_header Vary Accept-Encoding;
        expires 1y;
        add_header Cache-Control "public, immutable";
      }
    }
    
  • 改完重启Nginx:sudo systemctl restart nginx

3. 排查浏览器端内存问题

32位浏览器的内存上限很低,大概率装不下550MB的ArrayBuffer,换64位的Chrome/Firefox试试,同时关掉其他占内存的标签页,给游戏腾空间。

4. 拆分Unity的大资源文件

如果上面的方法都不行,就在Unity里把大文件拆了:

  • 打开Build Settings → Player Settings → WebGL → Optimization
  • 勾选Split Application Binary,设置一个合理的拆分阈值(比如100MB),把Game.data拆成多个小文件,这样单个文件就不会触发内存分配限制了。

内容的提问来源于stack exchange,提问作者Muhammad Taqi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:42:46