Open1

UE5_GameInstance

y wy w

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を使用してプレイヤー間で共有されるべきではないデータを管理しないよう注意が必要です。