GameplayAbilitySystem入门与实战(六):GameplayEffect(一)
前言
GameplayEffect
在GAS
框架中的重要性不言而喻, 内容非常多,,但是本身基本上只作为一个数据载体而存在,蓝图中也无法重写和执行任何事件.
本篇梳理一下GE
的常用属性和基本概念, 实战部分我们在下一篇展开
基础定义
GE
是属性修改的容器, 分为如下几个类型
Duration Type | GameplayCue Event | When to use |
---|---|---|
Instant |
Execute | 对BaseValue 的立即生效的处理,GameplayTags 不会被应用到, 即使在一帧之内 |
Duration |
Add & Remove | 对CurrentValue 持续修改.可以应用GameplayTags .持续事件在GE类中指定 |
Infinite |
Add & Remove | 类似Duration ,但是是永久的直到手动移除(如通过ASC) |
Duration
和Infinite
模式会出现Period
选项
如果ExecutePeriodicEffectOnApplication
=true,那么每隔Period
秒就执行
periodic inhibition policy
刷新策略,如是否覆盖
如果Tag
匹配或者不匹配, GE可以临时性的关闭或者开启,这移除操作不会移除GE,只是临时的移除GE的修改效果
如果要手动的直接应用GE的修改, 可以调用
1 | UAbilitySystemComponent::ActiveGameplayEffects.SetActiveGameplayEffectLevel(FActiveGameplayEffectHandle ActiveHandle, int32 NewLevel) |
GE
的属性设置一般建议在编辑器用蓝图编辑, 理论上可以用cpp
设定参数, 但是不直观也比较麻烦