【程序员必备】UE4 C++ 虚幻引擎:详解自定义Config文件存储位置及文件名

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:UE虚幻引擎专栏
  • 💥 标题:【程序员必备】UE4 C++ 虚幻引擎:详解自定义Config文件存储位置及文件名
  • ❣️ 寄语:人生的意义或许可以发挥自己全部的潜力,所以加油吧!
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正

1 新建一个C++类

这个类需要继承自UObject,显然也可以继承UObject的子类。其次要使用UCLASS宏添加config = Game说明符,本文为了使用蓝图调试,同是也加上Blueprintable说明符。如下图所示:

UCLASS(Blueprintable, config = Game)
class UECESIUMEX_TAIWAN_API UDTIS_ConfigFile : public UObject
{
	GENERATED_BODY()
}

2 定义需要存储的成员变量

同样的需要存储的变量也要在UPROPERTY宏中加上Config说明符。如下图所示:

public:
	UPROPERTY(BlueprintReadWrite, Config)
	float ExampleVariable;

3 设置自定义配置文件路径

在类中声明一个成员变量,用于存储路径。

private:
	FString ConfigPath;
UDTIS_ConfigFile::UDTIS_ConfigFile()
{
	// 自定义配置文件目录
	ConfigPath = FPaths::ProjectDir() / TEXT("Settings/Custom.ini");
}

ProjectDir()函数返回的路径是.uproject文件那一级目录,Settings是自定义文件夹名字,Custom.ini是自定义config文件名

4 将变量存储到文件中

自定义一个函数SaveCustomConfig,函数实现如下图所示:

void UDTIS_ConfigFile::SaveCustomConfig()
{
	SaveConfig(CPF_Config, *ConfigPath);
	GConfig->Flush(false, ConfigPath);
	UE_LOG(LogTemp, Warning, TEXT("SaveCustomConfig"));
}

5 修改config文件中的值来修改变量的值

自定义一个函数LoadCustomConfig,将配置文件中的值设置给变量,函数实现如下图所示:

void UDTIS_ConfigFile::LoadCustomConfig()
{
	GConfig->Flush(true, ConfigPath);
	ReloadConfig(this->GetClass(), *ConfigPath);
	UE_LOG(LogTemp, Warning, TEXT("LoadCustomConfig"));
}

6 验证结果

6.1 存储config文件

在关卡蓝图中,使用Construct Object From Class函数实例化DTIS_ConfigFile对象(在UCLASS宏中加上Blueprintable说明符才能被蓝图使用,不然编译会报错),将ExampleVariable值修改为100,然后调用SaveCustomConfig进行测试。最后打开Custom.ini文件,文件中变量的值为100.

在这里插入图片描述



在这里插入图片描述

6.2 读取config文件

手动修改config文件中变量的值,然后读取并打印出来。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

7 代码总结

  • .h头文件内容:
UCLASS(Blueprintable, config = Game)
class UECESIUMEX_TAIWAN_API UDTIS_ConfigFile : public UObject
{
	GENERATED_BODY()
	
public:
	UDTIS_ConfigFile();

	UFUNCTION(BlueprintCallable)
	void LoadCustomConfig();
	UFUNCTION(BlueprintCallable)
	void SaveCustomConfig();
	UPROPERTY(BlueprintReadWrite, Config)
	float ExampleVariable;

private:
	FString ConfigPath;
};
  • .cpp文件内容:
UDTIS_ConfigFile::UDTIS_ConfigFile()
{
	// 自定义配置文件目录
	ConfigPath = FPaths::ProjectDir() / TEXT("Settings/Custom.ini");
}

void UDTIS_ConfigFile::LoadCustomConfig()
{
	GConfig->Flush(true, ConfigPath);
	ReloadConfig(this->GetClass(), *ConfigPath);
	UE_LOG(LogTemp, Warning, TEXT("LoadCustomConfig"));
}

void UDTIS_ConfigFile::SaveCustomConfig()
{
	SaveConfig(CPF_Config, *ConfigPath);
	GConfig->Flush(false, ConfigPath);
	UE_LOG(LogTemp, Warning, TEXT("SaveCustomConfig"));
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值