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;
}