Unreal Engine 提供了多种获取路径的方法,用于访问引擎资源、用户数据、项目内容以及插件目录等。了解这些路径的获取方式对于在项目中正确加载资源、保存配置和访问文件系统至关重要。以下是几个常用的路径获取函数及其实际应用场景。
1. 组合多个路径片段
将多个路径片段组合成一个完整的路径,可以使用 FPaths::Combine()
方法。
FString CombinedPath = FPaths::Combine(FPaths::ProjectConfigDir(), TEXT("aa/dd/ff/gg"), TEXT("xx"), TEXT("ok.cp"));
// 返回: F:/UnrealEngine-5.1/MyProject/Config/aa/dd/ff/gg/xx/ok.cp
2. 项目路径获取
- 项目配置目录路径
FString ProjectConfigPath = FPaths::ProjectConfigDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Config/
- 项目内容目录路径
FString ContentPath = FPaths::ProjectContentDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Content/
- 项目根目录路径
FString RootPath = FPaths::RootDir();
// 返回: F:/UnrealEngine-5.1/MyProject/
- 项目保存目录路径
FString SavedPath = FPaths::ProjectSavedDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Saved/
3. 引擎路径获取
- 引擎配置目录路径
FString EngineConfigPath = FPaths::EngineConfigDir();
// 返回: F:/UnrealEngine-5.1/Engine/Config/
- 引擎内容目录路径
FString EngineContentPath = FPaths::EngineContentDir();
// 返回: F:/UnrealEngine-5.1/Engine/Content/
- 引擎插件目录路径
FString EnginePluginsPath = FPaths::EnginePluginsDir();
// 返回: F:/UnrealEngine-5.1/Engine/Plugins/
- 引擎中间目录路径 (用于编译中间文件)
FString EngineIntermediatePath = FPaths::EngineIntermediateDir();
// 返回: F:/UnrealEngine-5.1/Engine/Intermediate/
- 引擎源码目录路径
FString EngineSourcePath = FPaths::EngineSourceDir();
// 返回: F:/UnrealEngine-5.1/Engine/Source/
4. 文件相关路径操作
- 获取文件扩展名
FString FileExtension = FPaths::GetExtension(CombinedPath);
// 返回: cp
- 获取包含点号的文件扩展名
FileExtension = FPaths::GetExtension(CombinedPath, true);
// 返回: .cp
- 获取文件名
FString FileName = FPaths::GetCleanFilename(CombinedPath);
// 返回: ok.cp
5. 自动化测试路径
- 获取自动化测试目录路径
FString AutomationPath = FPaths::AutomationDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Saved/Automation/
- 获取自动化测试临时目录路径
AutomationPath = FPaths::AutomationTransientDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Saved/Automation/Transient/
- 获取自动化测试日志目录路径
AutomationPath = FPaths::AutomationLogDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Saved/Automation/Logs/
6. 其他常用路径
- 企业目录路径
FString EnterprisePath = FPaths::EnterpriseDir();
// 返回: F:/Program Files/Epic Games/Enterprise/
- 项目插件目录路径
FString ProjectPluginsPath = FPaths::ProjectPluginsDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Plugins/
- 项目MODS目录路径
FString ModsPath = FPaths::ProjectModsDir();
// 返回: F:/UnrealEngine-5.1/MyProject/Mods/
- 项目日志目录路径
FString LogPath = FPaths::ProjectLogDir() / TEXT("log.txt");
// 返回: F:/UnrealEngine-5.1/MyProject/Saved/Logs/log.txt
7. 检查与判断函数
- 是否保存到用户目录
bool bShouldSaveToUserDir = FPaths::ShouldSaveToUserDir();
// 返回: true
- 引擎是否安装在系统上
bool bIsEngineInstalled = FApp::IsEngineInstalled();
// 返回: true