[UE4]Unreal Property System (Reflection)
Reflection
- 의미
- runtime시 object 객체의 형태나 타입에 대한 정보를 동적으로 읽어내는 것
- runtime에 정보를 읽기때문에 compile하는것과 달리 느리다.
- 클래스의 이름만으로 클래스의 정보(필드, 메서드)를 찾거나 새로운 객체를 생성할 수 있다.
- Unreal에서 reflection
- 에디터의 detail panel들과 serialization, garbage collection, network replication, blueprint/c++ communication과 같은 많은 시스템들을 사용해주는 기술
- c++에서 reflection을 지원하지 않아, 언리얼 엔진에서 구현되어있다.
- Reflection 작동 원리
- UBT(Unreal Build Tool)가 리플렉션 키워드 탐색
- UHT(Unreal Header Tool)가 해당 .cpp를 파싱
- reflection data정보를 수집
- 수집된 정보는 별개의 C++코드 .generated.h/.cpp로 저장
- 빌드 시 기존 코드에 .generated.h코드를 추가해 컴파일