[Unreal] 언리얼 프로퍼티, 함수 지정자
Table of Contents
UPROPERTY()
에디터 관련 지정자 #
지정자 | Edit |
Visible |
---|---|---|
DefaultsOnly |
블루프린트 프로퍼티 창에서 .. 수정 가능 | .. 보기만 가능 |
InstanceOnly |
인스턴스의 디테일 창에서 .. 수정 가능 | .. 보기만 가능 |
Anywhere |
둘 다에서 .. 수정 가능 | .. 보기만 가능 |
UPROPERTY()
블루프린트 로직 관련 지정자 #
- 이것들은 private 변수에는 사용할 수 없다.
- 따라서 private 변수라면
Meta = (AllowPrivateAccess = "true")
를 해줘야 한다.
지정자 | 특징 |
---|---|
BlueprintReadOnly |
블루프린트 로직에서 Get으로 가져올 수 있다. |
BlueprintReadWrite |
블루프린트 로직에서 Get으로 가져올 수 있으며, Set으로 쓸 수도 있다. |
아무 것도 명시 안 하면 | Get, Set 모두 안 된다. |
UFUNCTION()
블루프린트 로직 관련 지정자 #
지정자 | 구현 위치 | 특징 |
---|---|---|
BlueprintCallable |
C++에서 | 블루프린트에서 호출할 수 있게한다. |
BlueprintImplementableEvent |
블루프린트에서 | 블루프린트에서만 구현할 수 있게한다. C++ 헤더에서는 보통 K2_ 를 접두사로 붙여준다. |
BlueprintNativeEvent |
둘 다 가능 | C++에 기본 구현이 있고, 선택적으로 블루프린트에서 오버라이드 할 수 있다. C++ 기본 구현을 위해서는 뒤에 접미사로 _Implementation 가 붙는 새로운 가상 함수를 선언해줘야 한다. 호출할 때는 접미사가 안 붙은 함수이름() 를 호출해야 어떤 함수를 호출할 지 결정할 수 있겠다. |
UFUNCTION(BlueprintNativeEvent)
void Func(); // 이것을 호출해야 한다.
virtual void Func_Implementation(); // C++ 구현은 여기에