Qt WebEngineView:加载 WebGL 项目时出现问题(从 Unity 导出)
Qt WebEngineView: Problem with loading a WebGL project (exported from Unity)
我正在尝试在 Qt WebEngineView (Qt 5.12.0) 中下载 WebGL 项目(从 Unity 2018.3.14f1 导出)
例如,WebGL 项目是在 Unity 2018 中创建的 - 一个没有对象的空场景(仅限相机) - 屏幕截图:Unity 项目
并导出到 WebGL 程序集(应用 .gzip 压缩,构建大小 2.3 MB)- 屏幕截图:Unity 构建设置
Qt 项目取自 Qt 的示例库 ("WebEngine Widgets Minimal Example")。
#include <QApplication>
#include <QWebEngineView>
QUrl commandLineUrlArgument()
{
const QStringList args = QCoreApplication::arguments();
for (const QString &arg : args.mid(1)) {
if (!arg.startsWith(QLatin1Char('-')))
return QUrl::fromUserInput(arg);
}
return QUrl(QStringLiteral("file:///F:/qt/test4Exp/index.html"));
}
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QWebEngineView view;
view.setUrl(commandLineUrlArgument());
view.resize(1024, 750);
view.show();
return app.exec();
}
当您在 Chrome 中打开 WebGL 项目时,所有内容都加载得非常快(即时)- 屏幕截图:在 Chrome
中打开的 WebGL 项目
当您在 WebEngineView 中打开 WebGL 时,项目需要很长时间才能加载(大约 5-6 分钟)- 屏幕截图:在 WebEngineView 中加载 WebGL 项目
...但随后打开 - 屏幕截图:在 WebEngineView 中加载的 WebGL 项目
从本地驱动器打开 WebGL 项目。我尝试了 Unity 导出参数的各种选项(brodil 压缩、代码优化等)。告诉我,可能是什么问题?可以应用于 Assembly 或 QCoreApplication::setAttribute ?
中的任何选项
下面附上工程WebGL和Qt工程
在 运行 从 exe 文件下(而不是从 QtCreator 下)运行应用程序后问题得到解决。在 exe 文件下一切都运行得更快。显然,QtCreator 减慢了 Unity 引擎的启动和初始化。当应用程序在 exe 下 运行 时,在 Web 引擎视图中启动 Web 项目需要 2-3 秒(在旧 PC 上为 7-9 秒)。
我正在尝试在 Qt WebEngineView (Qt 5.12.0) 中下载 WebGL 项目(从 Unity 2018.3.14f1 导出)
例如,WebGL 项目是在 Unity 2018 中创建的 - 一个没有对象的空场景(仅限相机) - 屏幕截图:Unity 项目
并导出到 WebGL 程序集(应用 .gzip 压缩,构建大小 2.3 MB)- 屏幕截图:Unity 构建设置
Qt 项目取自 Qt 的示例库 ("WebEngine Widgets Minimal Example")。
#include <QApplication>
#include <QWebEngineView>
QUrl commandLineUrlArgument()
{
const QStringList args = QCoreApplication::arguments();
for (const QString &arg : args.mid(1)) {
if (!arg.startsWith(QLatin1Char('-')))
return QUrl::fromUserInput(arg);
}
return QUrl(QStringLiteral("file:///F:/qt/test4Exp/index.html"));
}
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QWebEngineView view;
view.setUrl(commandLineUrlArgument());
view.resize(1024, 750);
view.show();
return app.exec();
}
当您在 Chrome 中打开 WebGL 项目时,所有内容都加载得非常快(即时)- 屏幕截图:在 Chrome
中打开的 WebGL 项目当您在 WebEngineView 中打开 WebGL 时,项目需要很长时间才能加载(大约 5-6 分钟)- 屏幕截图:在 WebEngineView 中加载 WebGL 项目
...但随后打开 - 屏幕截图:在 WebEngineView 中加载的 WebGL 项目
从本地驱动器打开 WebGL 项目。我尝试了 Unity 导出参数的各种选项(brodil 压缩、代码优化等)。告诉我,可能是什么问题?可以应用于 Assembly 或 QCoreApplication::setAttribute ?
中的任何选项下面附上工程WebGL和Qt工程
在 运行 从 exe 文件下(而不是从 QtCreator 下)运行应用程序后问题得到解决。在 exe 文件下一切都运行得更快。显然,QtCreator 减慢了 Unity 引擎的启动和初始化。当应用程序在 exe 下 运行 时,在 Web 引擎视图中启动 Web 项目需要 2-3 秒(在旧 PC 上为 7-9 秒)。