언리얼 엔진/Drag Down
[Drag Down] Gameplay Tag 관리 리팩토링
라구넹
2025. 4. 6. 19:25

지금까지 태그를 그냥 하드코딩했는데 그렇게 적절하진 않은 거 같다.
#pragma once
#include "CoreMinimal.h"
#include "GameplayTagContainer.h"
#define DDTAG_STATE_USINGABILITY FGameplayTag::RequestGameplayTag(FName("Player.State.UsingAbility"))
#define DDTAG_STATE_DODGE FGameplayTag::RequestGameplayTag(FName("Player.State.Dodge"))
#define DDTAG_EVENT_DODGEEND FGameplayTag::RequestGameplayTag(FName("Event.DodgeEnd"))
#define DDTAG_EVENT_PUSHTRIGGER FGameplayTag::RequestGameplayTag(FName("Event.PushTrigger"))
#define DDTAG_DATA_STAMINAUSED FGameplayTag::RequestGameplayTag(FName("Data.StaminaUsed"))
헤더에 태그 정의해두고
UDDGA_ActionBase::UDDGA_ActionBase()
{
NetExecutionPolicy = EGameplayAbilityNetExecutionPolicy::LocalPredicted;
InstancingPolicy = EGameplayAbilityInstancingPolicy::InstancedPerActor;
static ConstructorHelpers::FClassFinder<UGameplayEffect> DownStaminaEffectRef(TEXT("/Game/Blueprint/GA/GE/BPGE_DownStamina.BPGE_DownStamina_C"));
if (DownStaminaEffectRef.Succeeded())
{
DownStaminaEffect = DownStaminaEffectRef.Class;
}
bIsEventTriggered = false;
ActivationBlockedTags.AddTag(DDTAG_STATE_USINGABILITY);
}
실 사용 시에는 태그 참조하도록 한다.