1. 어트리뷰트 엑세서 만들기
체력과 마나등 어트리뷰트 데이터들 만들었고 이제 이에 접근할 수 있는 방법을 알아야 한다.
게터와 세터 등을 만들면 되지만 이것을 일일히 만들다 보면 속성을 하나 추가할때마다 해야할 작업이 너무 많을 것이다. 그렇기 때문에 매크로를 이용해 간단하게 접근하는 방법을 알아볼 것이다.
어트리뷰트 세트 클래스를 살펴보자.
일일히 헬퍼 함수들을 만드는 것은 너무 많은 수동 작업이 필요하니 대신 아래 매크로를 쓰라고 한다. 이를 사용하자.
이제 엔진 클래스가 아닌 우리가 사용할 어트리뷰트 세트 클래스로 들어가자.
#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName)
이제 상단부에 이 매크로를 작성해놓으면 된다.
이제 엑세서를 가져왔으니 어트리뷰트 데이터를 대입하기만 하면 헬퍼 함수가 자동으로 생성된다.
#include "AbilitySystemComponent.h"
UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Health, Category="Vital Attributes")
FGameplayAttributeData Health;
ATTRIBUTE_ACCESSORS(UAuraAttributeSet, Health);
이렇게 설정하면 헬퍼 함수가 자동으로 완성된다. 이 매크로를 정상적으로 작동시키기 위해서는 어빌리티컴포넌트 헤더파일을 가져와야 한다.
모든 어트리뷰트데이터에 매크로를 사용해서 헬퍼 함수들을 만들어주자.
'게임프로그래밍 > 실습2' 카테고리의 다른 글
[실습2] 16. 유저 위젯과 위젯 컨트롤러 만들기 (0) | 2024.11.28 |
---|---|
[실습2] 15. 이펙트 액터 만들기 (0) | 2024.11.28 |
[실습2] 13. 체력과 마나 어트리뷰트 만들기 (0) | 2024.11.28 |
[실습2] 12. GAS 오너 액터와 아바타 액터 설정 (0) | 2024.11.28 |
[실습2] 11. Replication Mode (0) | 2024.11.28 |