【UE5 C++课程系列笔记】19——通过GConfig读写.ini文件
步骤
1. 新建一个Actor类,这里命名为“INIActor”
2. 新建一个配置文件“Test.ini”
添加一个自定义配置项
3. 接下来我们在“INIActor”类中获取并修改“CustomInt”的值。这里定义一个方法“GetINIVariable”
方法实现如下,其中第16行代码用于构建配置文件的完整路径,FPaths::SourceConfigDir()
函数会获取虚幻引擎项目中源配置目录的路径,然后通过 FString::Printf
函数按照格式化的方式将源配置目录路径与文件名 DefaultGame.ini
进行拼接,形成完整的配置文件路径。
第17行定义了一个 int32
类型的变量 MyConfigVariable
,用于存储从配置文件中读取出来的整型配置变量的值。
第18行中,TEXT("Custom")
表示配置节(Section)的名称;TEXT("CustomInt")
是配置项(Key)的名称。
第21行调用 GConfig->SetInt
函数将更新后的 MyConfigVariable
的值写回到配置文件中。
第22行GConfig->Flush(false, DefaultGamePath)
语句用于将之前对配置文件所做的修改保存到配置文件中。
void AINIActor::GetINIVariable()
{
const FString DefaultGamePath = FString::Printf(TEXT("%sTest.ini"), *FPaths::SourceConfigDir());
int32 MyConfigVariable;
GConfig->GetInt(TEXT("MyCustom"), TEXT("CustomInt"), MyConfigVariable, DefaultGamePath);
UE_LOG(LogTemp, Warning, TEXT("CustomInt:%d"), MyConfigVariable);
MyConfigVariable += 10;
GConfig->SetInt(TEXT("MyCustom"), TEXT("CustomInt"), MyConfigVariable, DefaultGamePath);
GConfig->Flush(false, DefaultGamePath);
}
4. 编译后,创建基于“INIActor”的蓝图类
这里命名为“BP_INIActor”
将“BP_INIActor”拖入视口
5. 在关卡蓝图中通过1键调用方法“GetINIVariable”
调用后可以看到成功获取配置文件中配置项的值
打开“Test.ini”可以看到成功保存了修改后的配置项