GameProgrammar's Night

ゲームプログラム系の覚え書き

UE4 Configデータをお手軽に取得する

 UE4には、起動時オプション*1を扱えるようになるコンフィギュレーションという仕組みがあります。

docs.unrealengine.com

 基本的にC++で使うことが想定されており、クラスにUPROPERTY(config)などと設定することで自動保存復元もしてくれます。

 本当にちょっとしたものを使うのにいちいちクラスを作るのも面倒くさいので、直接取得する方法を紹介します。

 案の定*2、こういう便利オブジェクトはグローバルに存在していました。そのままずばりGConfigです。
 以下のように使います。

bool bBackground;

check(GConfig);
if(!GConfig->GetBool(TEXT("DirectInputPadPlugin"), TEXT("Background"), bBackground, GInputIni))
{
   bBackground=false;
}

 GConfigは、欲しい型で値をいれてくれるGet***というメソッド群がありますので、それらを使います。
 引数はすべて共通で、セクション名・キー名・値の入れ先の変数・値の入っているConfigファイル、と指定します。戻り値は、指定した値が存在した時はtrue、無い時はfalseになります。
 Configファイルは、カテゴリごとにやっぱりグローバル変数として存在してますので、必要なカテゴリの変数を使います。上記の例だと、入力カテゴリとなります。

 対応するコンフィギュレーションは以下のように書きます。

[DirectInputPadPlugin]
Background=true

*1:想定は起動時オプションですが、もちろん、他の用途にも使えます

*2:UE4のコードは、平気でグローバル変数を使います