Unreal Engine

[Unreal Engine] Unreal Engine_C++ 매크로

programmer-faust 2025. 7. 16. 22:30
  • 순서
    1. Unreal C++ 매크로란?
    2. 주요 매크로
  • Unreal C++ 매크로란?
    1. 언리얼 엔진의 헤더 툴(UHT)이 처리하는 특별한 주석/메타데이터.
    2. C++ 코드에 리플렉션(reflection) 정보를 추가하여 기능
      • 에디터에 속성을 노출
      • 블루프린트와 상호작용
      • GC(Garbage Collection)대상 객체로 관리 가능
    3. 컴파일 전에 UHT가 읽어들여 자동 코드 생성 및 메타데이터 등록
  • 주요 매크로
    1. 클래스 관련 
      • UCLASS(): 언리얼이 이 클래스를 관리하도록 표시
      • USTRUCT(): 언리얼에 구조체 등록
      • UENUM(): 언리얼에 열거형 등록
      • UINTERFACE(): 언리얼 인터페이스 클래스 등록
      • GENERATED_BODY(): 헤더 툴이 가상 함수 테이블, 리플렉션 데이터, 직렬화 함수 등을 자동 생성
    2. 변수 관련
      • UPROPERTY(): 멤버 변수를 에디터/블루프린트에 노출
        1. ex)UPROPERTY(EditAnywhere, BlueprintReadWrite, Catetory="")
        2. EditAnywhere: 에디터에서 수정 가능
        3. BlueprintReadWrite: 블루프린트에서 읽고 쓸 수 있음
        4. Category: 디테일 패널의 카테고리 이름
      • UPARAM(): 함수 매개변수에 메타데이터 추가
    3. 함수 관련
      • UFUNCTION(): 함수를 블루프린트에 노출하거나 RPC로 사용
        1. ex)UFUNCTION(BlueprintCallable, Category="")
        2. BlueprintCallable: 블루프린트에서 호출 가능
  • 주의할 점
    1. UPROPERTY() 없이 Unreal의 GC가 관리하지 못하면 메모리 릭 발생 가능