Unreal Macro 선언 및 flag
- UCLASS( )
- UENUM( )
- BlueprintType : Blueprint에서 read / write 가능
- USTRUCT
- Atomic : 하나단위로 직렬화
- BlueprintType : Blueprint에서 read / write 가능
- UFUNCTION( )
- BlueprintCallable : Blueprint에서 사용 가능
- Category = <string>("TopCategory|SubCategory|Etc") : function은 필수 항목
- UPROPERTY( )
- EditAnywhere / VisibleAnywhere : architecture type / level에 배치된 instance 양쪽에서 수정 가능
- BlueprintReadWrite / BlueprintReadOnly : blueprint에서 read, write
- Category = <string> : detail 패널에서 categorizing
Refleaction System
클래스 관리, 참조, 접근을 위해 클래스 포맷을 관리하는 시스템
- C#이나 Java같은 후발 객체지향언어에는 언어자체에서 구현되어있는 개념
UBT(unreal build tool) 및 UHT(unreal header tool)을 통해 모사
- 클래스 생성 시, 클래스에 대한 형태를 관리하는 매크로를 자동 생성
- 런타임에 클래스 포맷 혹은 포맷분석을 통해 역으로 바이너리 데이터를 탐색/조작하기 위함 ( 자기 자신을 파악 )
- UHT에 의해 만들어진 리플렉션 포맷 파일은 intermediate 폴더 내에 자동으로 생성
- 구문이 변경될떄마다 자동으로 수정됨
- 컴파일 분석 수준의 기능은 제공하지 않음
- 주 용도
- 런타임에 class내의 property 접근(읽기/쓰기) ( editor환경 등 )
- 직렬화
- 자체적인 GC시스템
- 주 관리
- <UClass> {class}::staticclass를 통해 class포맷에 접근 가능 ( 자기자신은 getClass() )
- createdefaultsubobject(cdo), newobject(runtime)
- <UProperty> FindPropertyByName
- 생성자에서 명시한 건 CDO(class default object) 수준에서 관리 ( UClass에서 CDO를 참조함 )
-
- <UClass> {class}::staticclass를 통해 class포맷에 접근 가능 ( 자기자신은 getClass() )
- 클래스 하이어라키
- UField
- UStruct
- UClass
- UScriptStruct
- UFunction
- UEnum
- UProperty
- UStruct
- UField
'Unreal > UE Architecture' 카테고리의 다른 글
Cpp -> BP Pipeline 1 (0) | 2024.05.17 |
---|---|
문자열 처리 (0) | 2024.05.16 |
Smart Pointer & Container & Serialize (0) | 2024.05.16 |
Input (0) | 2024.05.16 |
기본 구성 (0) | 2024.05.16 |