UE5 - C++와 블루프린트 연동 UPROPERTY(), UFUNCTION()
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++에서 함수원형을 작성해야함