언리얼 리플렉션 시스템 기초(11.12)

이정국(PBD)·2025년 11월 12일

TIL

목록 보기
58/70

1.언리얼 리플렉션(Reflection) 시스템이란?

  • C++ 코드 안의 클래스/변수/함수 정보를
    엔진(BP/에디터/리플렉션 런타임)에서도 인식하고 다룰 수 있게
    해주는 메타데이터 시스템

  • 보통 C++은 컴파일 이후 정보(변수명/타입 등)가 전부 사라지기 때문에
    런타임이나 툴(에디터/BP)이 접근할 수 없음.

  • 하지만 언리얼은 리플렉션 시스템 덕분에
    엔진이 클래스/변수/함수의 구조를 스스로 인식하고 조작 가능하게 함.

  • 즉 BP에서 C++ 함수를 호출하고

  • UPROPERTY를 에디터에서 노출하고

  • 세이브/로딩, 네트워크 복제(Replication) 등을 가능하게 함.

2.언리얼 리플렉션 시스템의 구성요소

  • 1. UCLASS( )
    역할 : 클래스 리플렉션 등록
    예시 : UCLASS(Blueprintable)
  • 2. UFUNCTION( )
    역할 : 함수 리플렉션 등록
    예시 : UFUNCTION(BlueprintCallable)
  • 3. UPROPERTY( )
    역할 : 변수 리플렉션 등록
    예시 : UPROPERTY(EditAnywhere, BlueprintReadWrite)

3. UFUNCTION (함수용) 리플렉션 명령어

  • BlueprintCallable
    → 블루프린트에서 이 함수를 호출 가능

  • BlueprintPure
    → 블루프린트에서 호출 할 수 있지만, 상태를 변경하지 않음(순수 함수)

  • BlueprintImplementableEvent
    → C++ 에서 선언만 하고 , 블루프린트 상에서 기능 구현

  • BlueprintNativeEvent
    → C++ 에서도 기본 구현 가능
    → 블루프린트에서 오버라이드 가능

  • Server / Client / NetMulticast
    → 네트워크 용 RPC 함수 지정

  • Reliable / Unreliable
    → RPC 전송 신뢰성 지정

4. UPROPERTY (변수용) 리플렉션 명령어

  • EditAnywhere
    → 에디터에서 수정 가능 (모든 상황에서 노출)

  • EditDefaultsOnly
    → 블루프린트 디폴트 값만 수정 가능

  • VisibleAnywhere
    → 읽기 전용, 에디터에서 값만 표시 (수정 불가능)

  • BlueprintReadOnly
    → 블루프린트에서 읽기(Get)만 가능

  • BlueprintReadWrite
    → 블루프린트에서 읽기(Get) / 쓰기(Set) 가능

  • Transient
    → 저장/로딩 안됨 (임시 데이터)

  • Replicated
    → 네트워크로 복제됨

profile
창백한 푸른점 속 작은점

0개의 댓글