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

Instant, Duration, Infinite, Periodic Gameplay Effect

난이도심화
예상 시간145분
선수지식20강의 Cost·Cooldown Effect

21강. Instant, Duration, Infinite, Periodic Gameplay Effect

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

영구 회복을 Duration Modifier로 만들면 Effect 종료 시 체력이 되돌아가고, 지속 Buff를 Instant로 누적하면 제거할 Handle이 없습니다. Periodic Effect를 Duration Modifier처럼 생각하면 Base 값 변화와 종료 결과를 잘못 예상합니다.

2. 학습 목표​

3. 핵심 개념​

정책예핵심
Instant데미지·즉시 회복실행 후 Active Effect로 남지 않음
Duration5초 슬로우기간 동안 Modifier·Tag 유지
Infinite장비·상시 Aura명시적으로 제거할 때까지 유지
Periodic독·재생 Tick주기마다 실행 결과 적용

Periodic은 Duration/Infinite Effect에 Period를 설정한 실행 패턴입니다.

4. 구현​

Active Effect 적용과 제거
FActiveGameplayEffectHandle ApplyPersistentEffect(
UAbilitySystemComponent* ASC,
TSubclassOf<UGameplayEffect> EffectClass)
{
FGameplayEffectContextHandle Context = ASC->MakeEffectContext();
FGameplayEffectSpecHandle Spec =
ASC->MakeOutgoingSpec(EffectClass, 1.0f, Context);
return Spec.IsValid()
? ASC->ApplyGameplayEffectSpecToSelf(*Spec.Data.Get())
: FActiveGameplayEffectHandle();
}

void RemovePersistentEffect(UAbilitySystemComponent* ASC,
FActiveGameplayEffectHandle& Handle)
{
if (ASC && Handle.IsValid()) ASC->RemoveActiveGameplayEffect(Handle);
Handle.Invalidate();
}

장비 Infinite Effect Handle은 장비 인스턴스 결과가 소유합니다. 이름·태그 전체 제거는 같은 태그를 쓰는 다른 출처까지 지울 수 있으므로 정책이 명확할 때만 사용합니다.

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

Duration·Infinite Effect는 ASC Active Effect Container에 남아 Tag, Modifier, Stack, 시간 정보를 제공합니다. Handle은 정확한 적용 인스턴스를 가리켜 출처별 제거를 가능하게 합니다.

6. 실패 사례와 해결​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Instant, Duration, Infinite, Periodic Gameplay Effect 미니 퀴즈

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

0 / 2
  1. 문제 1다음 중 “Instant, Duration, Infinite, Periodic Gameplay Effect”의 핵심 요약을 실제 상황에 맞게 적용한 것은 무엇인가요?
  2. 문제 2‘Infinite Handle 저장 누락’ 상태에 관한 “Instant, Duration, Infinite, Periodic Gameplay Effect” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

21강. Instant, Duration, Infinite, Periodic Gameplay Effect 미완료 상태