본문 바로가기

공부하자/Unreal4

Ue4 프로퍼티 지정자 정리 (Unreal UPROPERTY)

프로퍼티 선언

 

프로퍼티는 표준 C++ 변수 문법, 즉 앞에 UPROPERTY 매크로에 프로퍼티 메타데이터와 변수 지정자를 붙여 선언합니다.

UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)])
Type VariableName;

 

프로퍼티 지정자

 

프로퍼티 선언시, 프로퍼티 지정자를 붙여 프로퍼티가 엔진과 에디터의 다양한 부분과 어떻게 작동하는지를 제어할 수 있습니다.

아래 표는 실제 개발에 자주 사용하는 프로퍼티 지정자만 정리하였습니다.

 

프로퍼티 지정자 효과
BlueprintAssignable 멀티캐스트 델리게이트하고만 사용할 수 있습니다. 프로퍼티를 블루프린트에서 할당할 수 있도록 노출시킵니다.
BlueprintAuthorityOnly 이 프로퍼티는 멀티캐스트 델리게이트여야 합니다. 블루프린트에서, BlueprintAuthorityOnly 지정자가 붙은 이벤트만 받습니다.
BlueprintCallable 멀티캐스트 델리게이트 전용입니다. 프로퍼티를 노출시켜야 블루프린트 코드에서 호출할 수 있습니다.
BlueprintReadOnly 이 프로퍼티는 블루프린트에서 읽을 수는 있지만 변경은 안됩니다. BlueprintReadWrite 지정자와 호환되지 않습니다.
BlueprintReadWrite 이 프로퍼티는 블루프린트에서 읽거나 쓸 수 있습니다. BlueprintReadOnly 지정자와 호환되지 않습니다.
Config 이 프로퍼티는 환경설정 가능해집니다. 현재 값은 클래스와 연결된 .ini 파일에 저장되며, 생성시 로드됩니다. 디폴트 프로퍼티에 값을 줄 수는 없습니다. BlueprintReadOnly 로 간주합니다.
EditAnywhere 이 프로퍼티는 아키타입이나 인스턴스 양쪽의 프로퍼티 창에서 편집할 수 있습니다. 이 지정자는 어떤 "Visible" 지정자와도 호환되지 않습니다.
EditDefaultsOnly 이 프로퍼티는 프로퍼티 창에서 편집할 수 있지만, 아키타입 상에서만 가능합니다. 이 지정자는 어떤 "Visible" 지정자와도 호환되지 않습니다.
EditInstanceOnly 이 프로퍼티는 프로퍼티 창에서 편집할 수 있지만, 아키타입이 아닌 인스턴스 상에서만 가능합니다. 이 지정자는 어떤 "Visible" 지정자와도 호환되지 않습니다.
Replicated 이 프로퍼티는 네트워크를 통해 리플리케이트됩니다.
ReplicatedUsing=FunctionName ReplicatedUsing 지정자는 네트워크를 통해 프로퍼티를 업데이트할 때 실행되는 콜백 함수를 지정합니다.
VisibleAnywhere 이 프로퍼티는 모든 프로퍼티 창에 보이지만 편집할 수 없음을 나타냅니다. 이 지정자는 "Edit" 지정자와 호환되지 않습니다.
VisibleDefaultsOnly 이 프로퍼티는 아키타입에 대한 프로퍼티 창에서 보이기만 할 뿐, 편집할 수는 없음을 나타냅니다. 이 지정자는 어떤 "Edit" 지정자와도 호환되지 않습니다.
VisibleInstanceOnly 이 프로퍼티는 아키타입이 아닌 인스턴스에 대한 프로퍼티 창에서 보이기만 할 뿐, 편집할 수는 없음을 나타냅니다. 이 지정자는 어떤 "Edit" 지정자와도 호환되지 않습니다.
Category = TopCategory 
블루프린트 편집 툴에 이 프로퍼티를 표시할 때의 카테고리를 지정합니다. 

 

Edit~ Visible~ 차이: Edit는 편집 가능함, Visible은 편집 불가능하고 보이기만 함

DefaultOnly 의미: 블루프린터 에디터의 디테일 창에서만 가능

InstanceOnly 의미: 월드 아웃라이너에 배치된 인스턴스의 디테일 창에서만 가능

Anywhere 의미: 모든 디테일 창에서 가능

 


참조: https://docs.unrealengine.com/4.26/ko/ProgrammingAndScripting/GameplayArchitecture/Properties/