Unreal 엔진

[UE] UGameInstance 살펴보고 커스텀 BP/C++ GameInstance 만들어보기

원소랑 2023. 7. 19. 11:49
728x90

GameInstance

실행 중인 게임 인스턴스에 대한 상위 레벨 관리자 오브젝트.

 

프로젝트셋팅에서 커스텀 클래스로 설정할 수 있음

기본 제공 클래스는 두 개

UGameInstance

UPlatformGameInstance

UGameInstance : 스탠드 얼론 게임으로 실행 시 인스턴스 생성.

UPlatformGameInstance : 모바일 이벤트를 처리하는 UObject 하위 클래스. UApplicationLifecycleComponent 는 레벨 로드 시 제거.

 

블루프린트로 GameInstance 생성하기.

GameInstance 를 상속받는 블루프린트 클래스를 생성하고, 변수를 몇 개 추가. 임의의 값을(2023) 셋팅해주고, 플레이가 시작되면 다른 블루프린트 클래스에서 접근해서 출력하도록 설정.

 

이번엔 블루프린트 대신 커스텀 C++ 클래스로 생성해보기. 마찬가지로, 컨텐츠 브라우저에서 C++ 클래스 생성, 부모 클래스는 GameInstance 로 설정.

아래처럼, 간단하게 Init 메소드만 오버라이드해서 화면과 로그창에 로그를 출력하도록.

//MyGameInstance.h

UCLASS()
class THIRDPERSONCPP_API UMyGameInstance : public UGameInstance
{
	GENERATED_BODY()

public:
	void Init() override;
	
};


//MyGameInstance.cpp
void UMyGameInstance::Init()
{
	Super::Init();

	GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Yellow, TEXT("This is UMyGameInstance!"));
	UE_LOG(LogTemp, Warning, TEXT("This is UMyGameInstance!"));
}

끝.


언리얼 도큐먼트

https://docs.unrealengine.com/5.2/en-US/API/Runtime/Engine/Engine/UGameInstance/

 

UGameInstance

GameInstance: high-level manager object for an instance of the running game.

docs.unrealengine.com

 

언리얼 GitHub GameInstance.cpp 저장소 링크

GitHub 로그인 필요.

https://github.com/EpicGames/UnrealEngine/blob/463443057fb97f1af0d2951705324ce8818d2a55/Engine/Source/Runtime/Engine/Private/GameInstance.cpp

 

728x90
반응형