Open1
UE5_GameInstance
GameInstance
はUnreal Engineで使用されるクラスで、ゲームセッション全体を通じて生存し続けるオブジェクトです。これは、レベルのロードやアンロードが発生しても破棄されないため、ゲーム全体を通じてデータや状態を保持するのに適しています。GameInstance
は、プレイヤーのプロフィール情報、ゲーム全体の設定、マルチプレイヤーセッションの管理など、ゲーム全体にわたる情報の保持に使用されることが一般的です。
主な用途
- プレイヤーデータの保持: プレイヤーの進行状況や成績など、レベル間で持ち越す必要があるデータを保持します。
- ゲーム全体の設定: オーディオボリューム、グラフィック設定など、ゲーム全体を通じて一貫した設定を管理します。
- マルチプレイヤーセッション管理: プレイヤーのマッチメイキングやロビー状態の管理など、マルチプレイヤーゲームにおけるセッション管理を担います。
- 状態の永続化: ゲームを閉じて再開したときに、特定の状態を復元するために使用されます。
実装方法
GameInstance
クラスをカスタマイズするには、まずC++またはブループリントで新しいGameInstance
サブクラスを作成します。その後、プロジェクト設定でこのカスタムクラスをゲームのデフォルトGameInstance
として指定する必要があります。
使用例
// MyGameInstance.h
#pragma once
#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "MyGameInstance.generated.h"
UCLASS()
class MYGAME_API UMyGameInstance : public UGameInstance
{
GENERATED_BODY()
public:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Player Data")
int32 PlayerScore;
// 他のカスタム関数や変数をここに追加
};
このカスタムGameInstanceクラスでは、プレイヤーのスコアをゲームセッション全体で追跡し、保持することができます。ゲームの異なる部分からアクセスして更新することが可能です。
注意点
-
GameInstance
は非常に強力なツールですが、不必要に多くのデータを保持するとメモリ使用量が増加するため、必要なデータのみを保持するようにしましょう。 - マルチプレイヤーゲームでは、
GameInstance
を使用してプレイヤー間で共有されるべきではないデータを管理しないよう注意が必要です。