Unity WebGL Build on BrightSign Player 卡住加载
Unity WebGL Build on BrightSign Player stuck loading
我想 运行 Unity WebGL 在 BrightSign XT1144 播放器上构建。 (理论上应该是可以的。。。)
因此,我创建了一个绝对简单的 Unity 项目(使用 v2020.2.6f1),只不过是显示图像,并为 WebGL 构建它。然后我使用 BrightAuthor:connected(使用 HTML 5 Widget)向播放器发布了这个版本。
当我启动播放器时,会出现典型的 Unity WebGL 加载屏幕并在大约 17 秒停止。 90%.
目前构建在本地服务器和在线服务器上运行良好,但在 BrightSign 播放器上运行不正常。
我尝试了 Unity 中的 build/player 设置,但构建的行为没有改变。 (当然,我用血淋淋的指尖搜索了一下,但很难找到任何有效的信息......)
有没有人遇到过这种情况?任何帮助,将不胜感激! :)
我试过的东西:
- 启用开发构建
- 禁用压缩
- 禁用数据缓存
- 禁用引擎代码剥离
- 将 BrightSign OS 更新为 8.2.72
我终于成功了!
This post 在 Unity 论坛上让我走上了正确的轨道。
使用以下发布设置,我的 Unity (2020.3.2) WebGL 构建在 BrightSign XT1144 播放器上运行。 (BrightSignOS 8.x)
对于偶然发现此问题的任何其他人,已接近 asj 的解决方案,但至少在 OS 8.4.14 上使用 Unity 2021.3.1f1 和 运行ning 在 Brightsign XD1033 上构建时,我收到错误
It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a different browser.
看起来 Unity WebGL 项目不会再在本地 运行。按照 Brightsign 的说明 here 开始使用 Brightsign 上的 NodeJS 服务器来托管 WebGL。将 Unity 构建(index.html、Build、TemplateData、StreamingAssets)创建的所有内容移动到 node.js-starter-project-master
文件夹中的 client
文件夹。将 index.js
express 脚本修改为
const path = require('path');
var app = express();
app.use(express.static(path.join(__dirname, '/storage/sd')));
app.use(express.static(path.join(__dirname,'./client')));
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, './client/index.html'));
});
app.listen(9090, function() {
console.log('Example app listening on port 9090!');
});
还必须更新 webpack.config.js
,因此 client
目录被复制到 dist
。将 CopyWebpackPlugin
部分替换为
new CopyWebpackPlugin({
patterns: [{
from: './client',
to: 'client'
}]
})
从这里开始,按照 Brightsign GitHub 上的说明设置 NodeJS 演示文稿。在 http://localhost:9090
.
站点源 URL 的演示文稿中添加了一个 HTML5 小部件
在 Presentation Settings>Support Content>Files
下我添加了由 webpack 创建的 node-server.zip
文件。
它仍然不能满足我的需求。看起来它在技术上是可行的,但 XD1033 无法流畅地播放我的内容(一个相对简单的 2D 游戏)。它会显示 Unity 播放器,但很难加载游戏资产。但是,如果我从连接到 Brightsign 的笔记本电脑访问 url,它就可以正常加载。更简单的游戏或更强大的 Brightsign 可能会更好。
我也许可以通过一些优化和调整让它更好地工作,但目前不值得我花时间和精力。我可以只为 Windows 构建并使用 PC。只是尝试使用 Brightsign,因为我们发现它们更容易长期维护。如果我觉得无聊可能会回来看它,如果我让它工作得更好,我会更新。
我想 运行 Unity WebGL 在 BrightSign XT1144 播放器上构建。 (理论上应该是可以的。。。)
因此,我创建了一个绝对简单的 Unity 项目(使用 v2020.2.6f1),只不过是显示图像,并为 WebGL 构建它。然后我使用 BrightAuthor:connected(使用 HTML 5 Widget)向播放器发布了这个版本。
当我启动播放器时,会出现典型的 Unity WebGL 加载屏幕并在大约 17 秒停止。 90%.
目前构建在本地服务器和在线服务器上运行良好,但在 BrightSign 播放器上运行不正常。
我尝试了 Unity 中的 build/player 设置,但构建的行为没有改变。 (当然,我用血淋淋的指尖搜索了一下,但很难找到任何有效的信息......)
有没有人遇到过这种情况?任何帮助,将不胜感激! :)
我试过的东西:
- 启用开发构建
- 禁用压缩
- 禁用数据缓存
- 禁用引擎代码剥离
- 将 BrightSign OS 更新为 8.2.72
我终于成功了!
This post 在 Unity 论坛上让我走上了正确的轨道。
使用以下发布设置,我的 Unity (2020.3.2) WebGL 构建在 BrightSign XT1144 播放器上运行。 (BrightSignOS 8.x)
对于偶然发现此问题的任何其他人,已接近 asj 的解决方案,但至少在 OS 8.4.14 上使用 Unity 2021.3.1f1 和 运行ning 在 Brightsign XD1033 上构建时,我收到错误
It seems your browser does not support running Unity WebGL content from file:// urls. Please upload it to an http server, or try a different browser.
看起来 Unity WebGL 项目不会再在本地 运行。按照 Brightsign 的说明 here 开始使用 Brightsign 上的 NodeJS 服务器来托管 WebGL。将 Unity 构建(index.html、Build、TemplateData、StreamingAssets)创建的所有内容移动到 node.js-starter-project-master
文件夹中的 client
文件夹。将 index.js
express 脚本修改为
const path = require('path');
var app = express();
app.use(express.static(path.join(__dirname, '/storage/sd')));
app.use(express.static(path.join(__dirname,'./client')));
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, './client/index.html'));
});
app.listen(9090, function() {
console.log('Example app listening on port 9090!');
});
还必须更新 webpack.config.js
,因此 client
目录被复制到 dist
。将 CopyWebpackPlugin
部分替换为
new CopyWebpackPlugin({
patterns: [{
from: './client',
to: 'client'
}]
})
从这里开始,按照 Brightsign GitHub 上的说明设置 NodeJS 演示文稿。在 http://localhost:9090
.
在 Presentation Settings>Support Content>Files
下我添加了由 webpack 创建的 node-server.zip
文件。
它仍然不能满足我的需求。看起来它在技术上是可行的,但 XD1033 无法流畅地播放我的内容(一个相对简单的 2D 游戏)。它会显示 Unity 播放器,但很难加载游戏资产。但是,如果我从连接到 Brightsign 的笔记本电脑访问 url,它就可以正常加载。更简单的游戏或更强大的 Brightsign 可能会更好。
我也许可以通过一些优化和调整让它更好地工作,但目前不值得我花时间和精力。我可以只为 Windows 构建并使用 PC。只是尝试使用 Brightsign,因为我们发现它们更容易长期维护。如果我觉得无聊可能会回来看它,如果我让它工作得更好,我会更新。