Live Coding

2023/10 14 22:10

https://docs.unrealengine.com/5.0/zh-CN/using-live-coding-to-recompile-unreal-engine-applications-at-runtime/

在运行时重新编译并修正你的游戏二进制文件。

unreal支持基于Live++的Live Coding方案。Live Coding系统可以在引擎运行的时候,重新编译应用的C++代码,并修正其二进制文件。该功能在以下情况下可用:

  • 在虚幻编辑器中编辑你的应用。
  • 用编辑器内游玩(PIE)运行你的应用。
  • 在调试时运行附加到编辑器的应用程序打包的桌面构建。

这意味着不需要中止游玩测试或者编辑器中的编写工作,就可以对C++的类进行修改,重新编译,然后立刻看到变动生效。这在使用C++运行时逻辑时对于迭代式开发非常有益,比如游戏代码或者前端用户交互。虽然 热重载(Hot Reload) **系统仍然可用,但是Live Coding速度更快并且更加灵活。

如何使用Live Coding

所有的新版本虚幻引擎安装都默认启用Live Coding。当打开IDE时Live Coding控制台会自动启动,但是处于隐藏状态。

如果控制台隐藏了,它会在启动Live Coding构建的时候打开。

Live Coding控制台为编译状态提供一个输出日志。这独立于通常的 输出日志(Output Log),并且只显示Live Coding的构建信息。

要开始一个构建,在使用IDE或虚幻引擎时按下 CTRL+ALT+F11。一个通知信息会显示在屏幕右下角,显示构建的状态。在构建运行时,你可以继续在编辑器中工作或者测试项目,而不会受到干扰。

如果构建成功,将会立刻看到变动。

Live Coding在虚幻引擎打开时、在使用PIE时或者附加到原生桌面环境中的打包构建的时候都可用。在游戏主机或者移动设备上运行时不可用。

用Live Codeing修改变量的默认数值

修改变量的默认值时,.cpp 文件中应用的构建器所设置的数值不会在现有的对象实例中更新。然而,如果在 .h 文件中进行修改,将会看到变动。

配置

在 编辑器偏好(Editor Preferences) > 通用(General) > Live Coding 中找到Live Coding的相关设置。

通用(General) 设置控制Live Coding如何在开发环境中运作。

设置描述
启用Live Coding(Enable Live Coding)启用时,Live Coding将作为虚幻编辑器的编译方法。如果停用,虚幻编辑器会后撤至使用热重载。
启动(Startup)控制虚幻编辑器启动时Live Coding如何运行,包括是否激活控制台或者令其可见。
启用重实例化(Enable Reinstancing)控制Live Coding是否使用对象重实例化。启用时,对象的实例会被替换,以此来让代码中的大型变动生效。我们不建议停用该设置,否则变动将会变动不稳定。更多细节请参考使用Live Coding进行对象重实例化小节。
自动编译新添加的C++类(Automatically Compile Newly Added C++ Classes)启用时,添加C++类将会自动令Live Coding将其编译并添加到应用。