💼

Editor Utility Widgetのプリセット情報をリスト化する

2022/04/17に公開

Presetをリスト化して保存、読込できるようにする

Preset名でプリセットを保存して、リストからプリセット名を選択して読み込めるようにします。

SaveGameの派生クラスにプリセット名を格納するString配列を追加する

SaveGameの派生クラスである「BP_SaveGamePreset」にプリセット名を格納するString配列の変数を追加します。

Name Type
NameArray String(配列)

Widgetを追加する

Preset名を入力するTextBoxと、Preset名を選択するComboBoxを追加します。

Widgetを図のように追加します。

Preset名を保存できるようにする

Saveボタンの「On Clicked」イベントに処理を追加します。

変数を追加します。

Name Type
LocalSaveName BP_SaveGamePreset
NameArrayLocal String(配列)

プリセット名を保存するSaveGameファイルを作成します。

プリセット名を「SaveNames」という名前で保存します。

「SaveNames」を読み込みます。

「SaveNames」に保存されたプリセット名をComboBoxに追加します。

プリセット名に設定した名前のSaveGameにWidgetの入力値を保存します。

Preset名で読み込めるようにする

Loadボタンの「On Clicked」イベントに処理を追加します。

Preset名のSaveGameがある場合にWidgetの入力値を更新します。

EditorUtilityWidgetを立ち上げた時にPresetのリストを更新する

ウィジェットを立ち上げた時に「SaveNames」のSaveGameが存在すればConboBoxのリストを更新します。

保存と読込を確認する

実装した処理を確認します。

Widgetに入力した値にプリセット名を付けてSaveボタンをクリックします。

リストにプリセット名が追加されているので選択します。

プリセット名を選択した状態で「Load」ボタンをクリックすると入力値がWidgetに設定されます。

保存した情報は「(プロジェクトフォルダ)/Saved/SaveGames」フォルダにSaveNames.savと(Preset).savファイルが保存されます。

サンプルプロジェクト(GitHub)

GitHubにサンプルプロジェクトを置いておきました。

https://github.com/posita33/EUWPreset

Discussion