Open2

[UE5][UnrealC++].INI関係の設定

Yoshikazu AzechiYoshikazu Azechi

UCLASS

Config

  • 保存しますよ&どのファイルに保存しますよという設定
  • DefaultXXX.iniに保存される
  • Config=XXXという形で記載する
MyDataAsset
UCLASS(Config=Engine)

DefaultConfig

  • 設定がDefaultXXX.iniまでを使用するようになる
  • 実際のユーザーが変更できないようになるので、変更させたくないものはつけるといい
  • キーコンフィグやグラフィック設定などは、自己責任としてテキストエディタで触されてもよいかも
MyDataAsset
UCLASS(Config=Game, DefaultConfig)

PerObjectConfig

  • インスタンスごとに設定を保持することができる
  • [インスタンス名 クラス名]という形で記載する
  • データアセットでもできて、その場合はディレクトリにかかわらずアセット名ごとに模様
    • パッケージ名やモジュール付きのクラス名だと認識されない?
      • /Game/XXXSandbox.MyDataAsset
MyDataAsset
UCLASS(Config=Game, DefaultConfig)
DefaultEngine.ini
[DA_Hoge MyDataAsset]
Config=100

[DA_Fuga MyDataAsset]
Config=200

ConfigDoNotCheckDefaults

シリアライズをするときにBaseXXX.iniDefaultXXX.iniのチェックをしないらしい。
???

UPROPERTY

Config

これがついていると.iniでの読み書きが行えるようになる

MyDataAsset
UPROPERTY(Config)
int32 Value;
DefaultEngine.ini (Engineと仮定)
[/Script/Sandbox.MyDataAsset]
HierarchyEditable=123

GlobalConfig

Configと同じだがベースクラスの設定のみを使用する

MyDataAsset
UPROPERTY(GlobalConfig)
int32 Value;

ConfigHierarchyEditable

meta = (ConfigHierarchyEditable)で指定
Config Editorを使用して、エディタ上で各階層を一覧化しつつ設定が行える。
プラットフォームごとに切り替えるようなものに便利かも