Attribute Accessor 매크로 이해하기

haura·2025년 4월 29일
0

UE5

목록 보기
17/21

Attribute Accessor란?

AttributeSet 클래스에 존재하는 속성들을 쉽게

  • 가져오고(Get)
  • 초기화하고(Init)
  • 값을 설정할 수 있도록(Set)
    자동으로 Getter/Setter/Init 함수를 만들어주는 매크로 시스템이다.

왜 Attribute Accessor를 사용할까?

Unreal GAS에서는 FGameplayAttributeData 타입으로 속성을 다루는데 이 타입은 BaseValue, CurrentValue 같은 속성을 가지고 있으며 복잡하다.
그래서 매번 Get/Set 함수를 작성하는 것을 번거롭기 때문에 Attribute Accessor 매크로를 사용하면 쉽게 처리가 가능하다.

✍🏻 Attribute Accessor 매크로 실제 코드

#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName)
  • className : Attribute 클래스 이름
  • PropertyName : 속성 이름(ex: health, mana)
ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Health)

➡ 이 한 줄이 4개의 함수를 자동으로 만들어준다

  • GetHealthAttribute() : GameplayAttribute 객체 리턴
  • GetHealth() : 현재 값(float) 리턴
  • SetHealth(float NewValue : BaseValue 수정
  • InitHealth(float NewValue) : BaseValue와 CurrentValue를 동시에 초기화

0개의 댓글