Reflection과 UObject
- 언리얼에서 객체를 생성하는 방법
- Objcet를 상속받으면 메모리를 자동으로 관리, Reflectoin 등을 지원한다
- 기존 C++ 에선 new 키워드를 사용했지만 언리얼에선 NewObject <>를 통해 객체를 생성할 수 있다
class UTempObject : public Object
UTempObject* Obj = new UTempObeject();
UTempObject* Obj = NewObject<UTempObeject>();
- Reflection과 GC를 통해 언리얼에서 메모리를 관리한다
- UCLASS(), UFUNCTION(), UPROPERTY() 키워드를 통해 Reflection 대상에 추가할 수 있다
- UCLASS() 대상이 되면 클래스에 대한 메타데이터와 샘플(ClassDefaultObject)를 만들어둔다.
Specifier
- UCLASS(), UPROPERTY()등에 옵션을 줄 수 있다.
UPROPERTY(VisibleAnywhere)
int32 Hp;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = Stat)
int32 Mp;
UPROPERTY(EditAnywhere)
float Speed;
UCLASS(BlueprintType, Blueprintable)
class AActor : public UObject
Game Framework
- 언리얼 엔진은 다음과 같은 구조로 Controller와 Pawn 등이 짜여있다.
