안선생의 개발 블로그
[UE5] UPROPERTY() 매크로 본문
UPROPERTY() 매크로는 UE가 새 클래스, 함수, 변수를 인식하게 합니다. 이러한 매크로는 엔진이 수집하는 가비지입니다. 매크로를 지정할 때 언리얼 에디터 내에서 편집하고 표시할 수 있습니다.
여기서 가비지란?
가비지컬렉션 : 가비지 컬렉션이 발생하면, 엔진은 루트 세트부터 시작해서 알려진 UObject 레퍼런스 트리를 검색하여 참조된 오브젝트를 전부 추적할 수 있습니다. 참조되지 않은 오브젝트, 즉 트리 검색에서 찾지 못한 것들은 더이상 필요치 않은 오브젝트라 가정하고 제거합니다. 즉 멤버 변수가 더 이상 사용되지 않으면 할당된 메모리를 자동으로 해제 해주는 기능을 한다.
UPROPERTY() 사용법은 공식문서에 따르면 아래와 같이 사용한다고 나온다.
프로퍼티 지정자
엔진 및 에디터의 다양한 면에 대한 프로퍼티 작동방식을 지정하기 위해 UProperty 를 선언할 때 사용되는 키워드
자주 사용되는 몇가지만 써보겠습니다.
EditAnywhere : 블루프린트와 인스턴스 양쪽의 프로퍼티 창에서 편집할 수 있습니다.
VisibleAnywhere : 블루프린트와 인스턴스 양쪽의 프로퍼티 창에서 편집할 수 없고 보기만 가능
EditDefaultsOnly : 블루프린트 프로퍼티 창에서만 보이며 편집 가능
VisbileInstanceOnly : 인스터스 프로퍼티 창에서 보이며 편집은 불가능
Category : 블루프린트 편집 툴에 이 프로퍼티를 표시할 때의 카테고리를 지정합니다.
실행결과
블루프린트창
인스턴스창
두 실행결과를 보면 알 수 있듯이 Edit는 수정 가능하고 Visible은 수정이 불가능한것을 알 수 있다. 또 defaults는 블루프트에서만 보이고 Instance는 인스턴스에서만 보인다. 이렇게 UPROPERTY매크로는 멤버변수를 에디터네에서 수정하거나 볼 수 있으며 유용하게 사용할 수 있다.
더많은 프로퍼티 지정자는 아래 공식문서 링크에서 확인 가능하다.
https://docs.unrealengine.com/5.3/ko/unreal-engine-uproperties/
프로퍼티
게임플레이 클래스에 대한 프로퍼티 생성 및 구현 관련 레퍼런스입니다.
docs.unrealengine.com
'언리얼 > 언리얼 C++' 카테고리의 다른 글
[UE5] 언리얼 라이브 코딩 (0) | 2023.10.31 |
---|---|
[UE5] 생성자, BeginPlay,Tick 알아보기 (1) | 2023.10.28 |
[UE5] C++ 클래스 생성하기 (0) | 2023.10.27 |
[UE5] 언리얼 클래스 (0) | 2023.10.26 |
[UE5] UE_LOG 언리얼 엔진에서의 로깅 (0) | 2023.10.25 |