Reflection Debug

리플렉션 오류는 생성 코드 경계에서 추적한다

UHT가 읽는 선언과 C++ 컴파일러가 읽는 선언이 어긋나면 에디터 노출, 빌드, 블루프린트 호출이 서로 다른 위치에서 실패합니다.

Include

생성 헤더 위치

MyActor.generated.h는 같은 헤더의 마지막 include여야 UHT가 만든 선언이 올바른 순서로 붙습니다.

Body

매크로 본문 경계

UCLASS() 바로 아래 클래스 안쪽에 GENERATED_BODY()가 있어야 엔진 타입 정보가 연결됩니다.

Expose

노출 권한 분리

에디터 수정은 EditAnywhere, 블루프린트 쓰기는 BlueprintReadWrite처럼 목적별로 따로 봅니다.

Refresh

생성물 갱신

헤더 구조를 고친 뒤에도 반영이 없으면 에디터 재시작, 전체 빌드, 블루프린트 재컴파일을 순서대로 확인합니다.

디테일 패널 누락

UPROPERTY가 빠졌거나 Category, Edit 계열 지정자가 의도와 다를 수 있습니다.

블루프린트 호출 불가

BlueprintCallable 또는 BlueprintPure가 함수 목적에 맞게 선언됐는지 확인합니다.

빌드 로그의 UHT 오류

문법 오류가 실제 원인보다 뒤쪽에 찍힐 수 있으므로 직전 리플렉션 매크로부터 봅니다.

해결 기준

코드 빌드, 에디터 디테일 패널, 블루프린트 검색 결과가 모두 같은 선언을 보여주면 리플렉션 계약이 맞게 연결된 상태입니다.