天天看點

UE4 自定義ini

參考文章:

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.輸入自己的配置資料。比如:

UE4 自定義ini

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下的初始化檔案也會拷貝過來。

繼續閱讀