UE5自定义模块:如何通过模块名直接引用Public文件夹头文件?
UE5自定义模块头文件直接引用解决方案
1. 调整头文件目录结构(规范做法)
先把Public文件夹下的头文件迁移到与模块同名的子文件夹中,最终目录结构如下:
MinimapSystem ├───MinimapSystem.Build.cs ├───Private │ └───MinimapSubsystem.cpp └───Public └───MinimapSystem └───MinimapSubsystem.h
2. 修改MinimapSystem.Build.cs配置
在模块的Build.cs文件中,添加PublicIncludePaths配置,将模块的Public目录加入公共包含路径,让依赖模块能正确识别路径:
using UnrealBuildTool; using System.IO; public class MinimapSystem : ModuleRules { public MinimapSystem(ReadOnlyTargetRules Target) : base(Target) { PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "UMG" }); // 新增:将Public目录添加到公共包含路径 PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Public")); } }
3. 验证引用方式
完成上述调整后,就能在依赖该模块的代码中,像UE核心模块那样直接引用头文件:
#include "MinimapSystem/MinimapSubsystem.h"
补充说明
如果不想调整目录结构(保持Public下直接存放头文件),也能通过上述Build.cs配置实现直接引用头文件名:
#include "MinimapSubsystem.h"
但这种方式不符合UE模块的命名规范,容易引发头文件重名冲突,因此更推荐前面的目录结构调整方案。
内容的提问来源于stack exchange,提问作者Nick Charney Kaye
相关产品推荐
相关产品推荐

