STUDY/Unreal Engine

UE5 - C++와 블루프린트 연동 UPROPERTY(), UFUNCTION()

최디디 2022. 5. 11. 22:46

UPROPERTY()

UPROPERTY()는 변수에 붙는 리플렉션 매크로다.

매크로에 인자값을 넣어서 용도에 맞게 사용이 가능,

인자 값 순서는 상관이 없지만, 규칙이 존재함

1. 변수 공개 & 수정 권한

VisibleDefaultsOnly // 인스펙터 창에서 보이기만 하고 수정 불가능

VisibleInstanceOnly//월드 배치에서만

VisibleAnywhere//둘다

 

EditDefautOnly // 인스펙터 창에서 보이고 수정도 가능 에디터에서만

EditInstanceOnly// 월드 배치에서만

EditAnywhere// 둘다

 

2. 블루 프린트 공개 & 수정 권한

BlueprintReadOnly 블루프린트에서 해당 변수를 읽기가 가능합니다.
BlueprintReadWrite 블루프린트에서 해당 변수를 읽기 & 쓰기가 가능합니다.
BlueprintGetter 해당 변수에 접근 할 수 있는 함수를 지정하고 블루프린트는 해당 함수를 통해 변수에 접근합니다.
BlueprintSetter 해당 변수에 수정 할 수 있는 함수를 지정하고 블루프린트는 해당 함수를 통해 변수에 수정합니다.

 

3. Category

디테일 패널의 항목 이름 명칭

 

4. Meta

Meta 키워드는 Metadata 지정자라고 하며 에디터 관련 다양한 기능을 구현가능  
private으로 되어 있어도 "meta = (AllowPrivateAccess = "true")"명령어를 사용하여 에디터에서 보이게 할 수 있음
이외에도 다양한 Metadata 명령어가 있음

https://docs.unrealengine.com/ko/Programming/UnrealArchitecture/Reference/Metadata/index.html

 

UFUNCTION()

위는 변수용 매크로이며, UFUNCTION 함수용 매크로이다.

 

1. Blueprintcallable

c++에서 작성한 함수를 블루프린트에서 사용할 수 있게 하는 키워드, 재정의는 불가

 

2. BlueprintPure

값 하나 반환하는 함수에 사용하는 BlueprintPure 키워드, 아마도 매개변수 전용인듯

UPARAM 매크로는 레퍼런스를 인자로 받아 올 수잇는 키워드이다.

 

3. BlueprintImplementableEvent

c++이 블루프린트 함수를 사용하고 싶을때 쓰는 매크로

c++에서 블루프린트에서 사용할 함수 원형을 적어줘야함

 

4. BlueprintNativeEvent

c++에서 가상함수를 만드는 매크로

c++에서 함수원형을 작성해야함