参考文章:
https://docs.unrealengine.com/en-US/Programming/Basics/ConfigurationFiles //官网简单的配置设置和使用
https://blog.ch-wind.com/ue4-config-usage/ //ini文件配置机制详细介绍
使用引擎自带的ini跳过(看官网即可),下面是建立自己的ini文件:
1.在XXX(项目)/config下新建自己的ini,取名Test.ini。
2.输入自己的配置数据。比如:

3.新建一个C++类,用来管理这个配置文件的操作。
class FL10N
{
public:
FL10N();
~FL10N();
static FL10N* Instance();
//section代表的是Common,也可以多个section
FString GetValue(const FName& Key, const FString& Section = "") const;
private:
FConfigFile L10NConfig;
};
FL10N::FL10N()
{
FString ConfigPath = FPaths::GameDir() / TEXT("Config") /FString(TEXT("L10N.ini"));
L10NConfig.Read(ConfigPath);
}
FString FL10N::GetValue(const FName& Key, const FString& Section /*= ""*/) const
{
if (!Section.IsEmpty())
{
const FConfigSection *TmpSection = L10NConfig.Find(Section);
if (TmpSection && TmpSection->Contains(Key))
{
return TmpSection->Find(Key)->GetValue().Replace(TEXT("\\n"), TEXT("\n"));
}
return "";
}
else
{
for (const TPair<FString, FConfigSection>& TmpPair : L10NConfig)
{
if (TmpPair.Value.Contains(Key))
{
return TmpPair.Value.Find(Key)->GetValue().Replace(TEXT("\\n"), TEXT("\n"));
}
}
return "";
}
}
向配置文件写入修改数据
有个FConfigCacheIni的全局变量GConfig,这个变量控制UE4的Config里的初始化文件。FConfigCacheIni类里有对初始化文件的一些基本操作,读写,加载等。其实真正的保存数据还是用savegame和写入文件好一些,ini只是初始化文件,主要并不是用来存档。
例子:
//保存路径到本地配置文件
// GGameIni是saved/config下的配置文件绝对地址,比如:F:/MyProject/Saved/Config/WindowsNoEditor/Game.ini
FString outFolderName=”C:/XXX”;
GConfig->SetString(TEXT("/Script/XXX.XXXController"), TEXT("LocalPathPrefix"), *outFolderName, GGameIni);
SaveConfig(CPF_Config, *GGameIni);
目前还不知道如何向自己定义的ini写入。(之后补充)
注意:
1.保存的是saved目录下的config文件,saved是本地自己的东西,每次运行都会生成saved文件,engine/config下的初始化文件也会拷贝过来。