Unreal Engine GAS(Gameplay Ability System) 심화LESSON 12
GameplayTag를 전투 상태로 설계하는 방법
난이도심화
예상 시간135분
선수지식11강의 Attribute·Tag Delegate
12강. GameplayTag를 전투 상태로 설계하는 방법
1. 이번 강의에서 해결할 문제
RequestGameplayTag("Stun")을 여러 파일에 직접 쓰면 오타가 런타임까지 숨어 있고 이름 변경 범위를 찾기 어렵습니다. 입력, Ability, Effect, 상태와 Cue 태그가 같은 접두어를 섞어 쓰면 상위 태그 Query가 의도하지 않은 대상을 포함합니다.
2. 학습 목표
3. 핵심 개념
Ability.Attack.Basic
Ability.Movement.Dash
InputTag.Ability.BasicAttack
State.Dead / State.Stunned / State.Silenced / State.Invulnerable
Effect.Damage / Effect.Buff / Effect.Debuff
Cooldown.Ability.Dash
GameplayCue.Combat.Hit / GameplayCue.State.Stunned
Event.Combat.HitConfirmed
Root는 “어디에 쓰는가”, 하위 계층은 “무슨 의미인가”를 나타냅니다. State.Stunned를 Ability.Stunned 아래 두지 않습니다.
4. 구현
GASCombatTags.h
#pragma once
#include "NativeGameplayTags.h"
namespace GASCombatTags
{
GASCOMBAT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Input_BasicAttack);
GASCOMBAT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Input_Dash);
GASCOMBAT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(State_Dead);
GASCOMBAT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(State_Stunned);
GASCOMBAT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(State_Silenced);
GASCOMBAT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(State_Invulnerable);
GASCOMBAT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Data_Damage);
}
GASCombatTags.cpp
#include "Tags/GASCombatTags.h"
namespace GASCombatTags
{
UE_DEFINE_GAMEPLAY_TAG(Input_BasicAttack, "InputTag.Ability.BasicAttack");
UE_DEFINE_GAMEPLAY_TAG(Input_Dash, "InputTag.Ability.Dash");
UE_DEFINE_GAMEPLAY_TAG(State_Dead, "State.Dead");
UE_DEFINE_GAMEPLAY_TAG(State_Stunned, "State.Stunned");
UE_DEFINE_GAMEPLAY_TAG(State_Silenced, "State.Silenced");
UE_DEFINE_GAMEPLAY_TAG(State_Invulnerable, "State.Invulnerable");
UE_DEFINE_GAMEPLAY_TAG(Data_Damage, "Data.Damage");
}
Project Settings의 Tag Dictionary와 Config도 소스 관리하며 Redirect가 필요한 이름 변경은 한 릴리스 동안 Migration 계획을 둡니다.
5. 코드가 동작하는 이유
Native Tag는 오타가 난 문자열 호출을 분산시키지 않고 코드 검색과 Rename 범위를 명확하게 합니다. 계층적 이름은 HasTag의 부모 매칭과 Tag Query를 활용하면서도 목적별 Root가 우연한 교차 매칭을 막습니다.
6. 실패 사례와 해결
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2GameplayTag를 전투 상태로 설계하는 방법 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
12강. GameplayTag를 전투 상태로 설계하는 방법 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.