DeepSeek답변
언리얼 엔진의 Game Instance는 게임의 전역 상태와 데이터를 관리하는 중요한 객체입니다. 이 객체는 게임의 전체 라이프사이클 동안 유지되며, 레벨 전환 시에도 파괴되지 않습니다. 따라서 게임의 핵심 데이터나 시스템을 관리하는 데 매우 유용합니다.
Game Instance의 주요 특징
- 전역적 접근 가능:
- Game Instance는 게임의 어디서나 접근할 수 있습니다. UGameInstance 클래스를 상속받아 커스텀 Game Instance를 만들 수 있으며, 이를 통해 게임 전반에 걸쳐 필요한 데이터나 기능을 관리할 수 있습니다.
- 레벨 전환 시 유지:
- Game Instance는 레벨이 변경되거나 재시작되어도 유지됩니다. 이는 플레이어의 진행 상태, 설정, 또는 게임의 전역 변수 등을 저장하는 데 적합합니다.
- 초기화 및 종료:
- Game Instance는 게임이 시작될 때 초기화되고, 게임이 종료될 때 파�됩니다. 이를 통해 게임의 시작과 끝에서 필요한 로직을 구현할 수 있습니다.
- 네트워크 세션 관리:
- 멀티플레이어 게임에서 Game Instance는 네트워크 세션을 관리하는 데 사용될 수 있습니다. 예를 들어, 서버와 클라이언트 간의 연결 상태를 추적하거나, 세션 정보를 저장할 수 있습니다.
- 커스텀 데이터 저장:
- Game Instance는 게임의 전역 데이터를 저장하는 데 사용됩니다. 예를 들어, 플레이어의 점수, 인벤토리, 설정 등을 저장할 수 있습니다.
Game Instance 사용 예시
- 플레이어 데이터 관리:
- 플레이어의 점수, 레벨, 인벤토리 등의 데이터를 Game Instance에 저장하여 레벨 전환 시에도 유지할 수 있습니다.
- 설정 관리:
- 그래픽 설정, 오디오 설정 등 게임의 전역 설정을 Game Instance에 저장하고 관리할 수 있습니다.
- 네트워크 세션 관리:
- 멀티플레이어 게임에서 세션 정보를 Game Instance에 저장하여, 서버와 클라이언트 간의 통신을 관리할 수 있습니다.
- 게임 상태 관리:
- 게임의 현재 상태(예: 메인 메뉴, 인게임, 일시 정지 등)를 Game Instance에 저장하여 전역적으로 관리할 수 있습니다.
Game Instance 생성 및 사용 방법
- 커스텀 Game Instance 클래스 생성:
- UGameInstance를 상속받는 커스텀 클래스를 생성합니다.
cppCopyUCLASS() class MYGAME_API UMyGameInstance : public UGameInstance { GENERATED_BODY() public: UMyGameInstance(); // 커스텀 데이터 또는 함수 추가 UPROPERTY(BlueprintReadWrite, Category = "Game") int32 PlayerScore; UFUNCTION(BlueprintCallable, Category = "Game") void SaveGame(); };
- 프로젝트 설정에서 Game Instance 클래스 지정:
- 언리얼 에디터에서 Edit > Project Settings > Maps & Modes로 이동하여 Game Instance Class를 커스텀 클래스로 설정합니다.
- 게임에서 Game Instance 사용:
- 게임 내에서 GetGameInstance() 함수를 통해 Game Instance에 접근할 수 있습니다.
cppCopyUMyGameInstance* GameInstance = Cast<UMyGameInstance>(GetGameInstance()); if (GameInstance) { GameInstance->PlayerScore = 100; GameInstance->SaveGame(); }
결론
Game Instance는 언리얼 엔진에서 게임의 전역 상태와 데이터를 관리하는 데 필수적인 객체입니다. 이를 통해 레벨 전환 시에도 데이터를 유지하고, 게임의 핵심 로직을 효과적으로 관리할 수 있습니다. 커스텀 Game Instance를 활용하면 게임의 복잡한 요구사항을 쉽게 구현할 수 있습니다.
'개발 > 언리얼 Unreal' 카테고리의 다른 글
UE5 / Event Dispatchers (0) | 2025.03.10 |
---|---|
UE5 / Random Float in Range와 Random Float in Range from Stream (0) | 2025.03.10 |
UE5 / 블루프린트 메모_Multiplayer Prop Hunt Game (0) | 2025.03.07 |
UE5 / Custom Event - Replicates 옵션 (0) | 2025.03.04 |
UE5 / 블루프린트 메모_Multiplay SquidGame (0) | 2025.02.27 |