UE5 には Editor Utility Widget(以下、EUW) というエディタ上で使えるGUIツールを作成できる機能があります。
EUWはかなり便利な機能なのですが、編集内容が保存されないという特徴があります。
今回はUE5の標準機能のセーブスロットを活用してGUIの編集状況を保存したいと思います。
公式ドキュメント:
docs.unrealengine.com
1.EUWの作成
まずは簡易的なEUWを作成しました。
Bool, Int, Material の変数を用意し、Details View で表示しています。
2.セーブゲームクラスの作成
次にセーブゲームクラスを作成します。
変数にはEUWで保存が必要なものを用意します。今回はEUWと同じ3つの変数を用意しました。
公式ドキュメント:
docs.unrealengine.com
3.セーブ、ロード処理の作成
EUWの起動時(Construct)にロード、終了時(Destruct)にセーブする処理を組みました。
一般的な組み方で組んでいますが、Constructは起動時だけでなく何度も走るイベントなので DoOnce で初回のみ処理するようにしています。
また、セーブスロットが存在しない場合はキャスト処理で弾かれています。
セーブ時はセーブスロットが存在しない場合は新しく生成するようにしています。
編集内容が保存されるようになりました!