Unity WebGL游戏无加载页直接白屏 Chrome扩展商店上传问题问询
Unity WebGL 游戏作为Chrome扩展加载异常修复方案
1. 直接打开index.html白屏、build loader报错修复
Unity WebGL 构建产物默认不支持file://协议直接打开,受浏览器跨域安全策略限制必然触发加载报错,必须通过HTTP/HTTPS协议或Chrome扩展的chrome-extension://协议访问。
如果是在Chrome扩展中加载触发该问题,优先调整manifest的内容安全策略配置:
- 若使用Manifest V3版本,在manifest.json中添加如下规则:
{ "manifest_version": 3, // 其余原有配置保留 "content_security_policy": { "extension_pages": "script-src 'self' 'wasm-unsafe-eval' 'unsafe-inline' blob:; object-src 'self' blob:; style-src 'self' 'unsafe-inline';" } }
- 确认manifest中配置的入口页面路径,和你Unity构建出的index.html相对路径完全匹配。
2. 构建未生成unityProgress.js修复
该文件是Unity 2020及更早版本WebGL构建的产物,2021及之后版本默认已将进度条逻辑整合到[构建名].loader.js文件中,不会单独生成:
- 如果你使用的是2020及之前的Unity版本,打开Player Settings > WebGL > Publishing Settings,检查
Progress Bar选项是否被设为None,修改为Default后重新构建即可生成该文件。 - 如果你使用的是2021及之后版本,检查你用的WebGL自定义模板代码,删除对unityProgress.js的引用,直接调用loader.js内置的进度回调API即可。
3. 本地服务器加载所有按钮无响应修复
优先打开浏览器控制台查看是否有JS报错,再逐一排查以下点:
- 检查按钮绑定的交互逻辑是否包了
#if UNITY_EDITOR宏,导致构建时逻辑被剔除。 - 若使用新Input System,在Player Settings > WebGL > Input Support中开启对应输入权限。
- 检查UI Canvas的
Event Camera是否已赋值,空事件相机会导致所有UI交互失效。 - 确认本地服务器访问地址为
127.0.0.1,部分浏览器下localhost会触发跨域校验阻断交互请求。
通用排查思路
先剥离Chrome扩展相关配置,用本地静态服务器(可执行npx serve在构建产物目录直接启动)测试Unity构建产物是否能正常加载、交互正常,确认Unity打包无问题后,再对接Chrome扩展配置,可大幅缩小问题范围。
内容的提问来源于stack exchange,提问作者Bentley100
相关产品推荐
相关产品推荐

