特徴
GameInstanceには以下の特徴があります。
- レベルを跨いでも破棄されない永続的なオブジェクト
- レベルを跨いで値を保持することができる。
- ゲームを終了するとオブジェクトは消滅する。
以上のことから、セーブデータのような保存は出来ませんが、ゲーム起動中の値を保持する役割に適しています。
GameInstanceの機能
LabyrinthのGameModeは以下の機能を有します。
- レベル跨ぎ時のフェード用UMGを管理
- コンフィグパラメータを管理
- ゲーム中の一時保存データの管理
1. レベル跨ぎ時のフェード用UMGを管理
レベルを跨いでもGameInstanceが破棄されない特性を利用して、レベルを跨ぐ際のフェード用UMGを管理します。
フェードの機能

システム用のフェードのため、機能はシンプルです。
- フェードを即座にオンにする関数
- フェードを即座にオフにする関数
- フェードイン関数
- フェードアウト関数
これらの機能を黒フェードと白フェードのそれぞれ用意します。
フェードUMGの生成
GameModeから呼び出される初期化処理の際にUMGを生成し、黒フェードをオンの状態にしておきます。

2. コンフィグパラメータを管理

レベルを跨いで参照されるようなコンフィグパラメータを管理します。
3. ゲーム中の一時保存データの管理

セーブデータへの保存は定期的に行いますが、常に保持するパラメータはGameInstanceが管理します。
現時点では以下のパラメータを管理しています。
InventoryItems
プレイヤーが所持しているアイテム群です。
GameFlag
ゲーム進行で必要な細かなフラグです。
Gameflow
ゲーム進行のメインフラグです。