기초
•
Unreal Engine (이하 UE) 의 최소 단위는 UObject 이다
•
UObject 에서 파생되는 클래스를 UCLASS 매크로가 지정해준다!
•
UObject → Constructor 가 없거나 단순해야 한다
UObject 생성
1.
NewObject<class>
2.
CreateDefaultSubobject<class>
→ 메모리 할당자, 소멸자 사용금지! = new, delete → 메모리 자동 관리에서 벗어나게 된다
UObject Header 구성
#pragma once
#include 'Object.h'
#include 'MyObject.generated.h'
// UObject 파생 클래스를 알리는 UE 기본 매크로
UCLASS()
// class [모듈명] [클래스명]: public [extends 할 클래스, 인터페이스]
class MYPROJECT_API UMyObject : public UObject
{
// UObject 에서 필요한 핖수 매크로 구문
GENERATED_BODY()
};
C++
복사
UObject 의 필드 값
•
UProperty 로 지정하면 UE 에서 자동으로 가비지 컬렉션 해준다
•
기본 c++ 기능을 사용하면, 자동 가비지 컬렉팅이 안되다 → 가바지 컬렉팅의 방지가 될수도 있지만, 직접 관리해야하는 위험성이 따른다.
•
UE 에서 관리하는 포안터 변수의 경우 null 이 될 경우 자동으로 삭제가 된다 → 주의할 것!!
•
UPROPERTY 는 자동으로 Serialize 등의 기능을 포함한다