Labyrinth – GameInstance

特徴

GameInstanceには以下の特徴があります。

  • レベルを跨いでも破棄されない永続的なオブジェクト
  • レベルを跨いで値を保持することができる。
  • ゲームを終了するとオブジェクトは消滅する。

以上のことから、セーブデータのような保存は出来ませんが、ゲーム起動中の値を保持する役割に適しています。

GameInstanceの機能

LabyrinthのGameModeは以下の機能を有します。

  1. レベル跨ぎ時のフェード用UMGを管理
  2. コンフィグパラメータを管理
  3. ゲーム中の一時保存データの管理

1. レベル跨ぎ時のフェード用UMGを管理

レベルを跨いでもGameInstanceが破棄されない特性を利用して、レベルを跨ぐ際のフェード用UMGを管理します。

フェードの機能

 

システム用のフェードのため、機能はシンプルです。

  • フェードを即座にオンにする関数
  • フェードを即座にオフにする関数
  • フェードイン関数
  • フェードアウト関数

これらの機能を黒フェードと白フェードのそれぞれ用意します。

フェードUMGの生成

GameModeから呼び出される初期化処理の際にUMGを生成し、黒フェードをオンの状態にしておきます。

 

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

レベルを跨いで参照されるようなコンフィグパラメータを管理します。

3. ゲーム中の一時保存データの管理

セーブデータへの保存は定期的に行いますが、常に保持するパラメータはGameInstanceが管理します。

現時点では以下のパラメータを管理しています。

InventoryItems

プレイヤーが所持しているアイテム群です。

GameFlag

ゲーム進行で必要な細かなフラグです。

Gameflow

ゲーム進行のメインフラグです。

参考