본문으로 건너뛰기
Unreal Engine GAS(Gameplay Ability System) 심화LESSON 18

입력 바인딩: Enhanced Input과 Ability Input Tag

난이도심화
예상 시간165분
선수지식17강의 입력 태그 Ability Set

18강. 입력 바인딩: Enhanced Input과 Ability Input Tag

1. 이번 강의에서 해결할 문제​

Character가 GA_Dash 클래스를 직접 활성화하면 캐릭터마다 입력 코드가 달라지고 Ability 교체가 어렵습니다. 입력 눌림과 해제를 모두 TryActivate로 처리하면 Hold·Release Ability가 정상 동작하지 않습니다.

2. 학습 목표​

3. 핵심 개념​

입력 계층은 물리 키→Input Action→Input Tag까지만 압니다. ASC는 Input Tag→Ability Spec을 찾습니다. Ability 클래스 교체는 Ability Set 데이터에서 일어나고 Character 입력 코드는 변하지 않습니다.

4. 구현​

GASAbilitySystemComponent.cpp
void UGASAbilitySystemComponent::AbilityInputTagPressed(
const FGameplayTag& InputTag)
{
if (!InputTag.IsValid()) return;

ABILITYLIST_SCOPE_LOCK();
for (FGameplayAbilitySpec& Spec : GetActivatableAbilities())
{
if (!Spec.GetDynamicSpecSourceTags().HasTagExact(InputTag)) continue;
AbilitySpecInputPressed(Spec);
if (!Spec.IsActive()) TryActivateAbility(Spec.Handle);
}
}

void UGASAbilitySystemComponent::AbilityInputTagReleased(
const FGameplayTag& InputTag)
{
if (!InputTag.IsValid()) return;

ABILITYLIST_SCOPE_LOCK();
for (FGameplayAbilitySpec& Spec : GetActivatableAbilities())
{
if (!Spec.GetDynamicSpecSourceTags().HasTagExact(InputTag)) continue;
AbilitySpecInputReleased(Spec);
}
}

Character는 Local Controller의 Enhanced Input Callback에서 두 함수를 호출합니다. Stunned·Dead일 때 Character에서 키를 무시하기보다 Ability Blocked Tag가 활성화를 거절하게 해 AI·Gamepad·자동 실행 경로도 같은 규칙을 사용합니다.

5. 코드가 동작하는 이유​

Spec 목록을 잠근 상태에서 Dynamic Tag를 비교해 입력 대상 Ability를 찾습니다. Pressed·Released 이벤트를 ASC에 전달하면 Task가 Hold와 Release를 관찰할 수 있고, Local Predicted Policy는 ASC가 서버 요청과 Prediction Key를 관리합니다.

6. 실패 사례와 해결​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

입력 바인딩: Enhanced Input과 Ability Input Tag 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“입력 바인딩: Enhanced Input과 Ability Input Tag”에서 혼동하기 쉬운 개념을 올바르게 연결한 것은 무엇인가요?
  2. 문제 2‘Released 이벤트 미전달’ 실수를 판단할 때 “입력 바인딩: Enhanced Input과 Ability Input Tag” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

18강. 입력 바인딩: Enhanced Input과 Ability Input Tag 미완료 상태