Replicated

[Drag Down] Gameplay Tag 관리 리팩토링 본문

언리얼 엔진/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);
}

실 사용 시에는 태그 참조하도록 한다.