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

Gameplay Ability의 생명주기와 활성화 조건

난이도심화
예상 시간150분
선수지식13강의 활성화 태그 규칙

14강. Gameplay Ability의 생명주기와 활성화 조건

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

Ability가 실행되지 않으면 입력, 부여, 태그, 비용, 쿨다운, ActorInfo 중 어느 단계가 실패했는지 구분해야 합니다. 실행됐지만 EndAbility가 호출되지 않으면 다음 활성화와 Task가 막힐 수 있습니다.

2. 학습 목표​

3. 핵심 개념​

GiveAbility → FGameplayAbilitySpec
Input/Event → TryActivateAbility
CanActivateAbility → Tag/Cost/Cooldown/ActorInfo 검사
ActivateAbility → Commit → Ability Tasks
성공 또는 취소 → EndAbility

Ability가 끝나지 않으면 Instanced Ability와 Task가 남고 Block Tag가 해제되지 않을 수 있습니다.

4. 구현​

GA_BasicAttack.cpp 생명주기 골격
void UGA_BasicAttack::ActivateAbility(
const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
const FGameplayEventData* TriggerEventData)
{
if (!CommitAbility(Handle, ActorInfo, ActivationInfo))
{
EndAbility(Handle, ActorInfo, ActivationInfo, true, true);
return;
}

StartAttackTask(Handle, ActorInfo, ActivationInfo);
}

void UGA_BasicAttack::CancelAbility(
const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
bool bReplicateCancelAbility)
{
StopAttackWindow();
Super::CancelAbility(
Handle, ActorInfo, ActivationInfo, bReplicateCancelAbility);
}

Task 완료·취소·Montage 중단 Delegate가 모두 EndAbility 또는 CancelAbility로 수렴하도록 설계합니다. 같은 경로에서 두 번 End해도 안 되므로 Callback Handle과 활성 상태를 점검합니다.

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

ASC가 Spec과 Activation Info로 실행 인스턴스와 Prediction Key를 추적합니다. CommitAbility 실패 시 즉시 End하고 Task의 모든 종료 출구를 연결하면 활성 Tag와 비동기 작업이 누수되지 않습니다.

6. 실패 사례와 해결​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Gameplay Ability의 생명주기와 활성화 조건 미니 퀴즈

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

0 / 2
  1. 문제 1“Gameplay Ability의 생명주기와 활성화 조건” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2“Gameplay Ability의 생명주기와 활성화 조건” 실습 중 ‘Montage 취소 Delegate 미연결’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

14강. Gameplay Ability의 생명주기와 활성화 조건 미완료 상태