[UE5] NewObject vs GetDefaultObject

Eu4ng·2022년 12월 31일
0
post-custom-banner

NewObject 사용법

TSubclassOf<UItem> item_class = UItemB::StaticClass();
UItem* item = NewObject<UItem>(this, item_class);

GetDefaultObject 사용법

TSubclassOf<UItem> item_class = UItemB::StaticClass();
UItem* item = Cast<UItem>(item_class.GetDefaultObject);
// UItem* item = Cast<UItem>(item_class.GetDefaultObject());

데이터를 다룰 때 자주 사용함
ex) 클래스 레퍼런스로부터 아이템 정보를 가져오는 경우

NewObject VS GetDefaultObject

컴파일, 런타임에서 클래스 찾는 여부인가?

SubclassOf.h

FORCEINLINE TClassType* Get() const
{
	return **this;
}

FORCEINLINE TClass* GetDefaultObject() const
{
	TBaseType* Result = nullptr;
	if (Class)
	{
		Result = Class->GetDefaultObject();
		check(Result && Result->IsA(TClass::StaticClass()));
	}
	return (TClass*)Result;
}
profile
초보 개발자
post-custom-banner

0개의 댓글