日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在UE中创建配置文件

發布時間:2023/12/8 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在UE中创建配置文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內容概括

本篇將在一個空白插件中創建一個配置(并非必須要在插件中創建,直接在項目中創建也可以),該配置可在編輯器中打開。
之后,使用兩種方法來在代碼中讀取配置的內容。

配置文件的官方文檔為:Configuration Files | Unreal Engine Documentation

步驟0. 創建空白插件

以Blank為模板創建插件。

步驟1. 創建配置的UObject

定義一個配置對應的UObject,需要注意的是需要在UCLASS宏中有Config,其值就是配置文件ini的名字:

#pragma once#include "CoreMinimal.h"#include "MyTestConfig.generated.h"//配置對應的UObject: UCLASS(Config = yaksue) class UMyTestConfig : public UObject {GENERATED_UCLASS_BODY() public://測試配置項:UPROPERTY(Config, EditAnywhere)bool test1;UPROPERTY(Config, EditAnywhere)FString test2;UPROPERTY(Config, EditAnywhere)FColor test3; };

對應cpp文件不需額外處理,只要實現構造函數就行了:

#include"MyTestConfig.h"UMyTestConfig::UMyTestConfig(const FObjectInitializer& ObjectInitializer): Super(ObjectInitializer) { }

步驟2. 注冊配置

隨后,需要在模塊的啟動函數中注冊這個配置。不過首先要先include負責這個行為的模塊,以及剛才定義UObject的文件:

#include "ISettingsModule.h" #include "MyTestConfig.h"

注冊的代碼:

//獲得 ISettingsModule 模塊并注冊配置 if (ISettingsModule* SettingsModule = FModuleManager::GetModulePtr< ISettingsModule >("Settings")) {SettingsModule->RegisterSettings("Project", //ContainerName"Plugins", //CategoryName"YakSue", //SectionNameLOCTEXT("YaksueConfig", "YaksueConfig"), //DisplayNameLOCTEXT("YaksueConfigDescription", "YaksueConfigDescription"), //DescriptionGetMutableDefault< UMyTestConfig >()); //SettingsObject }

其中RegisterSettings有很多參數,其意義是:

  • ContainerName:指定是在編輯器中的 “Project” 還是 “Editor”。
  • CategoryName:編輯器中的分類。
  • SectionName
  • DisplayName:編輯器中顯示的名字。
  • Description:鼠標懸停在編輯器中的名字上浮現的提示。
  • SettingsObject:配置所對應的UObject

隨后,在編輯器中就可以在 Project Settings 的 Plugins 分欄下看到名為 YaksueConfig 的配置:

修改一些屬性后,將可以看到對應內容被存到了項目文件夾\Saved\Config\Windows\yaksue.ini中:

[/Script/TestPlg.MyTestConfig] test1=False test2=jojo test3=(B=218,G=202,R=255,A=0)

讀取配置的方式:GetDefault

使用GetDefault<配置對應的UObject類型>()可以獲得配置的UObject。
比如:

FString data = GetDefault<UMyTestConfig>()->test2;

讀取配置的方式:配置文件層級

上面方式的一個缺點是,使用時需要知道那個UObject的定義。
而通過“配置文件層級”則不需要(關于“配置文件層級”的概念可看官方文檔)
比如,當前層級就是:

[/Script/TestPlg.MyTestConfig]

為了方便,我在嘗試這種方式時,將存儲的ini文件改成一個引擎知道的ini文件,比如Engine:

UCLASS(Config = Engine)

現在,當修改屬性時,可以在 \Saved\Config\Windows\Engine.ini 看到與之前相同的內容了。
而讀取時的代碼為:

FString data; GConfig->GetString(TEXT("/Script/TestPlg.MyTestConfig"), TEXT("test2"), data, GEngineIni);

函數的最后一個參數就是配置文件,比如GEngineIni的值就是絕對路徑\Saved\Config\Windows\Engine.ini

總結

以上是生活随笔為你收集整理的在UE中创建配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。