Lazy loaded image
💥Explosion 游戏引擎开发笔记 - QML 热重载
字数 384阅读时长 1 分钟
2025-6-8
2025-6-8
type
status
date
slug
summary
tags
category
icon
password
最近开始写 Explosion 游戏引擎的编辑器了,UI 是使用 QT 开发,开始尝试了 QWidget,我是写过 Web 的人,根本受不了 QWidget 那种改一行编译再启动的开发流程。后来 QT 增加了 QML 的支持,渲染性能更高,而且是使用了自己的 QML 语言,类似 JavaScript + HTML,其实它是可以热重载的。
 
网上有不少 QML 热重载的参考资料,但是网上的资料其实都没提到 Singleton QML 的支持,而 Singleton QML 对主题的支持是很重要的,我自己手撸了一个热重载引擎,支持所有种类的 QML 文件热重载,另外资源加载也能很好的支持,在热重载模式下直接使用文件协议访问源文件,在非热重载模式下则使用 qrc 协议去访问自动打包的资源。
 
我自己已经用了有两个月时间了,极大提升了开发效率,跟写 Web 感觉差不多,直接上效果,看视频:
 
因为是直接在引擎里面写的,我没有单独再整出来搞个项目,感兴趣的话可以直接参考仓库里的以下文件自己搞一个类似的:
 
想直接试试的话可以直接下载 Explosion 项目按照 README.md 编译,然后加下面参数启动 Editor.exe 即可:
 
上一篇
利用 C++ Concepts 做编译期检查
下一篇
UE 5.5 使用 Horde + Unreal Build Accelerator (UBA) 搭建联机编译服务

评论
Loading...