전체 그림
언리얼에서 C++ 코드 한 줄이 실제로 빌드되어 에디터/블루프린트에서 쓰이기까지는 대략 이런 순서를 거친다.
- UBT(Unreal Build Tool)가 빌드 전체를 지휘한다 — 어떤 모듈을 어떤 순서로, 어떤 플랫폼 설정으로 컴파일할지 결정한다.
- UBT는 실제 C++ 컴파일러를 돌리기 전에 UHT(Unreal Header Tool)를 먼저 실행한다. UHT는
UCLASS/UPROPERTY/UFUNCTION같은 매크로가 붙은 헤더를 스캔해서 리플렉션에 필요한 보일러플레이트 코드(.generated.h)를 생성한다. - 이렇게 생성된 리플렉션 데이터를 바탕으로, 클래스가 처음 로드될 때 그 클래스의 "기본값 템플릿"인 CDO(Class Default Object)가 하나 만들어진다. 이후
new나SpawnActor로 만들어지는 모든 인스턴스는 이 CDO의 값을 기본값으로 물려받는다.
