게임 개발/Unreal Engine

[UE] FStruct 안전한 타입 변환(FStruct Safely cast)

지노윈 2022. 10. 28. 21:31
반응형

FMyChildStruct 인스턴스가 아닌 경우 정상적으로 타입 변환이 되겠지만,

MyChildStruct->NoCrash->bDone과 같이 참조시 어플리케이션은 크래시가 발생합니다.

 

이를 방지하기 위해 IsChildOf를 사용하여 크래시를 피할 수 있습니다.

const FMyChildStruct* MyChildStruct = static_cast<FMyChildStruct*>(MyParentStruct);

if(MyChildStruct->GetScriptStruct()->IsChildOf((FMyChildStruct::StaticStruct())))
{
	bDone = MyChildStruct->NoCrash->bDone;
}

 

그리고, Cast<FSomeType>(...)은 UObject 클래스에서만 동작하고 FStruct는 사용할 수 없습니다.