[C++] 언리얼 프로퍼티, 함수 지정자

Woogle·2022년 9월 5일
0

언리얼 엔진 5

목록 보기
4/60
post-thumbnail

📄 UPROPERTY

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
float Hp;

UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Stats")
float Stamina;
  • 언리얼 리플렉션 시스템에 해당 프로퍼티가 있음을 알림.
  • 엔진에 의해 관리되며, 에디터가 상호작용할 수 있는 기능을 추가 제공한다.
  • Garbage Collecting 등

✏️ VisibleAnywhere

  • 아키타입이나 인스턴스의 디테일 패널에서 볼 수는 있지만 수정 불가
    ※ 아키타입: 인스턴스화 되지 않은 블루프린트 원본

✏️ EditAnywhere

  • 아키타입이나 인스턴스의 디테일 패널에서 편집 가능

✏️ EditDefaultsOnly

  • 에디터 창에서 아키타입만 편집 가능

✏️ BlueprintReadWrite

  • 블루프린트(Variables, Event Graph)에서 읽거나 수정할 수 있음

✏️ BlueprintReadOnly

  • 블루프린트(Variables, Event Graph)에서 읽을 수 있으나 수정할 수 없음

✏️ Transient

  • 저장하지 않고 메모리에 임시 보관하는 변수 (휘발성)
  • CurrentHp 같은 값은 게임을 시작할 때마다 바뀌니까 굳이 보관할 필요가 없으므로 직렬화에서 제외시키는 것이 좋음

✏️ Category

  • 개발자 편의대로 카테고리에 묶을 수 있음

✏️ meta = (BindWidget)

  • UUserWidget 클래스의 변수를 바인딩 할 때 사용

📄 UFUNCTION

UFUNCTION(BlueprintCallable, meta = (AllowPrivateAccess = "true"))
int Plus(int a, int b);

UFUNCTION(BlueprintPure, meta = (AllowPrivateAccess = "true"))
int Minus(int a, int b);
  • 언리얼 리플렉션 시스템에 해당 함수가 있음을 알림.
  • 엔진에 의해 관리되며, 에디터가 상호작용할 수 있는 기능을 추가 제공한다.
  • 가비지 콜렉션 및 델리게이트 바인딩 등 (.AddDynamic)
  • 상속받은 가상 함수는 부모 클래스에서만 UFUNCTION을 붙이면 된다.

✏️ BlueprintCallable

  • 블루프린트의 이벤트 그래프에서 호출할 수 있는 함수

✏️ BlueprintPure

  • 블루프린트에서 "순수 함수"로 호출됨.
    ※ 순수 함수: 실행 시점에 무관하게 동일 인자를 넣으면 항상 동일한 결과가 나오는 함수.
  • 즉, 블루프린트에서 실행핀(execution pin)이 없음.

✏️ BlueprintImplementableEvent

  • 함수 선언은 C++에서, 몸체는 블루프린트에서 구현함

✏️ BlueprintNativeEvent

  • 함수 선언과 구현을 C++에서 하고, 블루프린트에서 재정의할 수 있음
  • 함수 이름 끝에 "_Implementation"를 붙인 함수를 추가로 선언한 뒤 코드를 작성

✏️ meta = (AllowPrivateAccess = "true")

  • private 메소드를 블루프린트에서 접근 가능하게 설정

참고자료

profile
노력하는 게임 개발자

0개의 댓글