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로 남지 않음 |
| Duration | 5초 슬로우 | 기간 동안 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
0 / 2Instant, Duration, Infinite, Periodic Gameplay Effect 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
21강. Instant, Duration, Infinite, Periodic Gameplay Effect 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.