UE-Reflection#1

Ryan Ham·2024년 6월 6일
1

Unreal Engine

목록 보기
5/27
// CDO, GameInstance에 접근하여 테스트 하는 코드


#include "MyGameInstance.h"

void UMyGameInstance::Init() {
	Super::Init();
	UE_LOG(LogTemp, Log, TEXT("========================="));

	UClass* ClassRuntime = GetClass();
	UClass* ClassCompile = UMyGameInstance::StaticClass();

	// assertion 체크
	// runtime과 compile-time에서 둘다 동일한 객체를 가르키고 있다. 
	check(ClassRuntime == ClassCompile);
	
	// check 구문은 조건이 맞지 않으면 에디터가 뻗기 때문에 필요에 따라서는 ensure구문을 활용해보자
	//ensure(ClassRuntime == ClassCompile);

	UE_LOG(LogTemp, Log, TEXT("School name %s"), *ClassRuntime->GetName());

	SchoolName = TEXT("BJ_UNI");

	// 바뀐 SchoolName
	UE_LOG(LogTemp, Log, TEXT("School name %s"), *SchoolName);
	// CDO에 기록된 SchoolName. 
	UE_LOG(LogTemp, Log, TEXT("CDO School name %s"), *GetClass()->GetDefaultObject<UMyGameInstance>()->SchoolName);


	UE_LOG(LogTemp, Log, TEXT("========================="));
}

UMyGameInstance::UMyGameInstance()
{
	// 생성자에서 들어간 값들은 CDO 객체에 반영
	// header file을 변경하는 것과 마찬가지로 생성자에 변경을 가하는 코드들은 live-coding으로 할 수 없고
	// UE Editor를 끄고 다시 키는 과정이 있어야 한다. 
	SchoolName = TEXT("KAIST");
}

profile
🏦KAIST EE | 🏦SNU AI(빅데이터 핀테크 전문가 과정) | 📙CryptoHipsters 저자

0개의 댓글