Part1前言
在使用UE5开发应用的时候,为了让连接的数据库IP、服务IP适应各种部署情况,经常使用配置文件来存储这些数据。本文旨在简化配置文件的使用,通过使用同一个函数即可适应编辑器模式和运行时模型,并且简化了配置文件的维护。项目开源地址:
https://github.com/inveta/InConfig
Part2使用方法
1设置配置文件
目前支持字符串和整数的配置文件读写。通过调用蓝图方式,可以实现自动生成配置文件,并且生成的配置文件在打包的时候,会自动被拷贝到安装程序中。
![feeb6818439f6ce3c4655e513a05beca.png](https://img-blog.csdnimg.cn/img_convert/feeb6818439f6ce3c4655e513a05beca.png)
生成的配置文件如下:
![04f30ed7d31ac332b8cee0ace8f108fd.png](https://img-blog.csdnimg.cn/img_convert/04f30ed7d31ac332b8cee0ace8f108fd.png)
2读取配置文件
目前仅仅支持字符串和整数的配置文件读写。
![fe0fc615a55ae2b18fd545f3c376efdf.png](https://img-blog.csdnimg.cn/img_convert/fe0fc615a55ae2b18fd545f3c376efdf.png)
Part3重点代码解析
3适配编辑器模型和运行时模型
通过下面的函数可以获取到工程目录,并且同时适用于运行时和编辑器模型
FString ProjectPath = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir());
4配置文件命令
我们采用工程名称来命名配置文件,工程名称获取采用如下函数
FString ProjectName = FApp::GetProjectName();
5配置文件保存
配置文件保存在工程目录的Config目录下。
6打包自动拷贝
默认新建的配置文件,不会打包到程序目录下面,需要设置DefaultGame.ini中添加允许打包的设置
[Staging]
+WhitelistConfigFiles=FirstUE5/Config/test.ini
这里直接在代码中进行了处理,所以能够无感的自动打包到安装程序中,示例代码如下
FString fileName = ProjectName + "/" + "Config/" + ProjectName + ".ini";
GConfig->SetString(TEXT("Staging"), TEXT("+WhitelistConfigFiles"), *fileName, *DefaultGamePath);
7获取数据
这里获取配置文件数据采用UE提供的GConfig全局变量,其已经帮我们都实现了。目前实现了字符串和整数的配置文件读写,应该可以满足大多数应用场景。
获取字符串配置
GConfig->GetString(*Section, *Key, value, ConfigPath);
设置字符串配置
GConfig->SetString(*Section, *Key, *value, ConfigPath);
Part4总结
本文主要介绍了一种UE5的配置文件读写插件,旨在简化蓝图对配置文件的读写操作。