在没有编辑器的单独 C++ 项目中使用 UE4 headers/classes

Using the UE4 headers/classes in a separate C++ project without the editor

我正在开发一个通过 UE4 classes(例如 FName、UClass、FPlatformTime 等)的 C++ .dll 插件,用于我没有源代码的游戏。我想在我的插件中访问传递的 objects 和 view/modify 他们的 class 成员。

UnrealEngine\UE_4.25\Engine\Source\Runtime\Core\Public 添加为附加包含目录,然后在我的源文件中包含 #include "UObject/NameTypes.h" 会导致 headers 中看似无穷无尽的缺失定义,例如 Build.h,Platform.h.

在不使用编辑器的简单 Visual Studio C++ 项目中包含 UE4 classes 的正确方法是什么?

我已经编译了一个小的 UE4 项目,我目前正在使用从其 .pdb 中提取的 UE4 class headers 因为输出很简单,但我想使用适当的 UE4 headers.

Unreal Engine 类型旨在与 Unreal Engine 一起使用,它们并非设计用于 Unreal Engine 生态系统之外的纯 C++ 项目。

在 UE4 解决方案中,查看各种程序,例如“BlankProgram”和“SlateViewer”。这些使用 UE4 模块并使用 UnrealBuildTool 构建,但您可以创建自己的程序并且只 link 到您需要的 UE4 模块。这将有效地让您创建一个没有不需要的东西的轻量级程序,例如 UMG 或媒体播放器。

这样做的一个缺点是,由于 UnrealBuildTool 的工作方式,您的程序必须驻留在引擎的“Source/Programs”文件夹中并遵循一个简单但不可协商的模板(即它需要有一个 类型设置为“程序”的文件)。

祝你好运!