UObject

MoOrY·2022년 10월 29일
0

언리얼 엔진

목록 보기
1/41

언리얼 오브젝트는 언리얼 엔진의 관리를 받는 특수한 개체이다.
UObject에서 파생되는 클래스에 UCLASS매크로를 태그해주면, UObject 처리 시스템에서 인식하게 된다.

꼭 모든 클래스가 UObject가 되어야 하는것은 아니며, 필요에 따라 네이티브 클래스를 사용할 수 있다.

언리얼 클래스는 접두사를 통해 구분한다.
F: 일반 C++ 오브젝트
U: 언리얼 오브젝트(UObject)
A: 액터

언리얼 오브젝트는 언리얼 엔진 내에서 객체를 쉽고 효율적으로 관리하기 위해 고안되었으며,
일반 C++ 객체가 언리얼 오브젝트로 될 경우 다음의 기능들이 자동으로 향상된다.

  1. CDO(Calss Default Object): 객체의 초기 값을 자체적으로 관리
  2. Reflection: 객체 정보를 런타임에서 실시간 조회가 가능
  3. GC(Garbage Collection): 참조되지 않는 객체를 메모리에서 자동 해제
  4. Serialization: 객체와 속성 정보를 통으로 안전하게 보관하고 로딩
  5. Delegate: 함수를 묶어서 효과적으로 관리하고 호출할 수 있다
  6. Replication: 네트워크 상에서 객체간의 동기화 가능
  7. Editor Intergration: 언리얼 에디터 인터페이스를 통해 값을 편집할 수 있다
    https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Objects/Optimizations/

함수, 클래스, 프로퍼티 등에 UFUNCTION, UCLASS, UPROPERTY등의 매크로로 마킹해주어
UFunction, UClass, UProperty 등으로 변환할 수 있다.

언리얼 헤더 툴UHT
UObject파생 유형에 제공되는 함수성을 활용하기 위해서,
해당 유형에 대해 헤더 파일에서 전처리 단계를 거쳐 줘야 필요한 정보를 수집할 수 있다.
이러한 전처리 단계는 UHT(Unreal Header Tool)에서 이루어진다.

profile
필기용 블로그입니다.

0개의 댓글