728x90
https://docs.unrealengine.com/4.26/ko/InteractiveExperiences/Framework/QuickReference/
GameInstance
GameInstance는 게임의 전반적인 상태를 관리합니다. 게임이 실행되는 동안 종료되지 않으며, 레벨 간의 전환에도 유지됩니다. 싱글톤 역활
- 전역 데이터 관리: 게임 전반에 걸쳐 유지되어야 하는 데이터를 저장합니다. 예를 들어, 플레이어의 프로필, 설정, 또는 레벨 간에 공유되는 데이터를 관리합니다.
- 게임 세션 관리: 멀티플레이어 세션이나 네트워크 연결 상태를 관리합니다.
- 초기화 및 종료: 게임 시작 시 초기화하고, 종료 시 클린업 작업을 수행합니다.
class UMyGameInstance : public UGameInstance
{
GENERATED_BODY()
public:
virtual void Init() override;
virtual void Shutdown() override;
UPROPERTY(BlueprintReadWrite, Category = "PlayerData")
int32 PlayerScore;
};
블루프린터에서 GameInstance사용설정
블루프린터용 GameInstance를 만들고 ProjectSetting에 Project - Maps & Modes에서 직접만든 instance 변경한다.
GameModeBase
GameModeBase는 각 레벨에서의 게임 규칙과 흐름을 관리합니다. 게임의 규칙, 승리 조건, 플레이어 스폰 등의 작업을 담당합니다.
- 게임 규칙 정의: 각 레벨에서의 게임 규칙과 승리 조건을 설정합니다.
- 플레이어 관리: 플레이어의 스폰 위치를 결정하고, 플레이어가 죽었을 때의 행동을 정의합니다.
- 게임 흐름 제어: 레벨의 시작, 중지, 종료를 관리합니다.
class AMyGameModeBase : public AGameModeBase
{
GENERATED_BODY()
public:
virtual void StartPlay() override;
UPROPERTY(BlueprintReadWrite, Category = "GameRules")
int32 MaxPlayers;
UFUNCTION(BlueprintCallable, Category = "GameRules")
void CheckWinCondition();
};
블루프린터에서 GameMode사용설정
World Settings의 Game Mode에서 만든 GameMode로설정
비교
- 범위:
- GameInstance: 게임 전체를 아우르며, 모든 레벨에 걸쳐 유지됩니다.
- GameModeBase: 특정 레벨에 국한되며, 각 레벨마다 다를 수 있습니다.
- 역할:
- GameInstance: 게임의 전역 상태와 데이터를 관리합니다.
- GameModeBase: 각 레벨에서의 게임 플레이 규칙과 흐름을 관리합니다.
- 라이프사이클:
- GameInstance: 게임이 시작될 때 생성되고, 게임이 완전히 종료될 때 파괴됩니다.
- GameModeBase: 각 레벨이 로드될 때 생성되고, 레벨이 언로드될 때 파괴됩니다.
728x90
'Unreal' 카테고리의 다른 글
[Unreal5] Input Action와 Input Mapping Context 사용방법 (0) | 2024.06.03 |
---|---|
[Unreal5] Component 추가 및 속성 변경 (0) | 2024.05.30 |
[Unreal5] 특정 조건에 맞는 액터를 찾기 및 이동 (0) | 2024.05.28 |
[Unreal5] 오브젝트 Load 방법 및 생성 (0) | 2024.05.28 |
[Unreal5] UObject와 Reflection (0) | 2024.05.22 |