Unreal引擎插件引用问题:包含头文件后无法找到.generated.h
解决Unreal Engine插件中找不到.generated.h文件及手动添加路径引发大量错误的问题
核心问题原因
直接手动添加VC++目录会破坏Unreal构建系统的自动路径管理机制,引发大量冲突错误;而找不到.generated.h文件,是因为没有通过Unreal模块依赖机制正确引用插件,导致构建系统未生成对应的反射文件。
分步解决方案
1. 正确配置项目对插件的模块依赖
打开项目根目录下的[你的项目名].Build.cs,在依赖模块列表中添加你的插件模块名:
// 示例:假设你的插件模块名为FSMPlugin PrivateDependencyModuleNames.AddRange(new string[] { "FSMPlugin" }); // 若插件为公开依赖,可改用PublicDependencyModuleNames
插件的模块名可在插件目录下的
[插件名].Build.cs中查看ModuleName字段的值。
2. 确保插件已在编辑器中启用
- 打开Unreal编辑器,点击顶部菜单栏
Edit -> Plugins - 在插件列表中找到你的FSM插件,勾选
Enabled,重启编辑器生效
3. 修正头文件引用方式
把GoblinFSM.h中的完整路径引用(例如#include "C:/Plugins/FSM/StateManagerComponent.h")改成模块内直接引用:
#include "StateManagerComponent.h"
Unreal的构建系统会通过模块依赖自动识别插件头文件路径,无需手动指定。
4. 清理错误配置并重建项目
- 打开Visual Studio,右键项目 → 属性 → VC++目录,删除之前手动添加的插件头文件路径,点击确定
- 关闭Visual Studio,删除项目根目录下的
Intermediate和Binaries文件夹 - 右键项目的
.uproject文件,选择Generate Visual Studio project files - 重新打开项目并编译
5. 检查插件类的反射配置
确认插件中的StateManagerComponent.h满足以下要求:
- 类顶部有
UCLASS()宏标记(例如UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))) - 文件末尾必须包含自动生成的头文件:
#include "StateManagerComponent.generated.h"
只有标记了Unreal反射宏的类,构建系统才会生成对应的.generated.h文件。
内容的提问来源于stack exchange,提问作者Jbasham
相关产品推荐
相关产品推荐

