NewObject<class>()

;단순한 클래스(언리얼 오브젝트)를 생성.

 *NewObject로 생성된 오브젝트를 더 이상 사용하지 않으면 언리얼 실행 환경의 가비지 컬렉터(GC)가 자동 소멸시킴.

// 소스 코드.
template< class T >
T* NewObject
(
    UObject* Outer=(UObject*)GetTransientPackage(),
    UClass* Class=T::StaticClass() 
)
 
// 사용 방식.
UPROPERTY() // 선언하지 않으면 GC가 소멸.. 
UMyClass* MyClass = NewObject<UMyClass>();
cs

 

 

NewNameObject<class>()

;지정된 이름과 함께 약간의 파라미터 옵션으로 클래스를 생성.

// 소스 코드.
template< class TClass >
TClass* NewNamedObject
(
    UObject* Outer, 
    FName Name, 
    EObjectFlags Flags = RF_NoFlags, 
    UObject const* Template=NULL
)
cs

 

ConstructObject<class>()

;가능한 모든 생성 옵션으로 클래스를 생성.

// 소스 코드.
template< class T >
T* ConstructObject
(
    UClass* Class, 
    UObject* Outer = (UObject*)GetTransientPackage(), 
    FName Name=NAME_None, 
    EObjectFlags SetFlags=RF_NoFlags, 
    UObject const* Template=NULL
    bool bCopyTransientsFromClassDefaults=false
    struct FObjectInstancingGraph* InstanceGraph=NULL 
)
cs

'::protected > 언리얼4&5' 카테고리의 다른 글

가비지 컬렉션(Garbage collection)  (0) 2019.11.12
TSubclassOf  (0) 2019.11.12
TSet  (0) 2019.10.17
TMap  (0) 2019.10.17
TArray  (0) 2019.10.17

+ Recent posts