GameplayEffect

UGameplayEffect를 상속하는 클래스
Attribute, GameplayTag를 변경하는 기능을 함.
GameplayTag는 사물의 상태를 표현하는 데 사용함.
UGameplayEffect를 상속하여 새로운 클래스를 만들거나 하지 않으며, 데이터 전용임.
Modifier, Execution을 통해 Attribute를 변경함.
- Modifier
- Add
- Multiply
- Divide
- Override
- 여러 종류의 Magnitude(Modifier로 인해 변경되는 값) 타입을 지원함
- Scalable Float
- Attribute Based
- Custom Calculation Class
(MMC = Modifier Magnitude Calculation)
- Set by Caller
(Key-Value → Magnitude - Name/GameplayTag)
- Executions
- GameplayEffect Execution Calculation
(하나 이상의 Attribute를 변경할 수 있음)
- Duration Policy
- Instant
- Duration (일정 기간 동안 Attribute 수정)
- Infinite (별도로 제거해주지 않는 이상 계속 지속되는 GameplayEffect)
- Stacking (GameplayEffect는 중첩 가능하며, 중첩을 어떻게 할 지 정책 설정이 가능함)
- Add GameplayTags
- Grant Abilities (특정한 능력 획득)
직접 적용할 수도 있지만, 주로 최적화를 위해 GameplayEffectSpec을 통해 적용함.
속성을 변경하기 위한 최소한의 정보가 포함되어 있으며,
GameplayEffect의 인스턴스화된 버전이라고 생각하면 된다.

GameplayEffect, GameplayEffectSpec에 관한 부분은 설명만으로는 좀 헷갈리는 부분이 있다.
이후 내용을 따라가면서 알아가는 편이 나을 것 같다.