[ UE ] GameInstance

LeeTaes·2024년 3월 16일

UE5

목록 보기
5/5

GameInstance에 대해 알아보기

GameInstance란?

  • 게임 프로그램이 실행부터 종료 시까지 유지되는 단 하나의 전역적인 객체입니다.

  • 게임 세션 전체에서 유지되는 데이터와 로직을 관리하는 클래스입니다.

  • 게임이 실행되는 동안 존재하며, 레벨 간 이동이나 게임의 다양한 상태에서 유지되어야 하는 정보들을 저장하고 공유하는 데 사용됩니다.

  • 멀티플레이어 게임에서의 활용
    → 플레이어 간 정보 교환 및 게임 상태 동기화에 활용됨
    → 자신의 클라이언트에서 GameInstance를 통해 공유된 정보에 접근 가능함


게임 인스턴스 클래스 생성 및 설정

  1. 클래스 생성
    → GameInstance를 부모로 하는 클래스를 생성합니다.
  1. 프로젝트에 게임 인스턴스 설정하기
    → [프로젝트 세팅] - [맵&모드] 에서 설정 가능합니다.

언리얼 게임 흐름 순서도


게임 인스턴스의 생성자와 Init() 함수 호출 순서 테스트

  • 테스트를 위해 생성한 게임 인스턴스에 코드를 추가합니다.
// .h
public:
	UPuzzlePlatformsGameInstance();

	virtual void Init() override;
	
// .cpp
#include "PuzzlePlatformsGameInstance.h"

UPuzzlePlatformsGameInstance::UPuzzlePlatformsGameInstance()
{
	UE_LOG(LogTemp, Warning, TEXT("Start Construct"));
}

void UPuzzlePlatformsGameInstance::Init()
{
	UE_LOG(LogTemp, Warning, TEXT("Start Init"));
}

결과 확인

  1. 에디터 실행 시 출력되는 로그
  1. 게임 실행 시 출력되는 로그
  • 게임 인스턴스의 생성자 함수는 에디터 실행 및 게임 실행 시 호출됩니다.
  • 게임 인스턴스의 Init() 함수는 게임 실행 시 생성자 함수 실행 이후 호출됩니다.
profile
클라이언트 프로그래머 지망생

0개의 댓글