Unity发布成WebGL,有一些预设打成AB包加载,路径在StreamingAssets\AssetBundles\WebGL\prefab;在项目工程及本地部署的网页都可以正常加载,使用同一局域网的其它电脑也可以正常打开。但是发布到外网服务器就不能正常加载了,下面是打包和加载的代码:
打包代码:
BuildPipeline.BuildAssetBundles(folderPath, BuildAssetBundleOptions.None, BuildTarget.WebGL);
加载代码:
WWW www = new WWW(url);
解析
m_assetBundle = www.assetBundle;
GameObject prefab = m_assetBundle.LoadAsset(prefabName);

unity webgl Failed to decompress data for the AssetBundle 'Memory'
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注
部署在外网服务器上的 WebGL 项目需要注意以下几点:
确认 StreamingAssets 文件夹中的 AssetBundles 文件夹是否正确上传到了服务器,路径是否正确。
在加载 AssetBundle 时,WWW 的 url 参数需要填写正确的地址。如果你是通过相对路径来加载的(如上述代码中的 "url" 变量),则需要确认该路径在外网服务器上是否正确,并且需要考虑跨域访问问题。可以在服务器端设置允许跨域访问的响应头,或者使用代理来解决。
如果 AssetBundle 中的资源比较大,可能会导致下载时间过长,建议添加进度条等提示,避免用户体验不佳。
可以在浏览器的开发者工具中查看网络请求和响应状态,帮助定位问题。
另外,如果你在本地和局域网内都能正常加载预设,但在外网服务器上不能正常加载,还有一个可能的原因是防火墙的限制。你需要确保防火墙允许外网访问你的服务器,并且端口也需要正确配置。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报