创建近战攻击技能

概述

这一节,我们利用GGA提供的GameplayEffectContainer功能,来演示一遍制作基础近战技能的流程。

使用Container制作近战技能的流程

通常,你在你的近战GameplayAbility资产上配置一个GameplayTag->GameplayEffectContainer的映射(GGA_GameplayAbility已经有了,叫做EffectContainerMap)。


gga make melee attack 1

它代表针对不同的事件(由Tag表示),采用不同的TargetingPreset获取目标,并为目标应用多个TargetGameplayEffect。

然后,在近战技能播放动画时,用动画通知为角色发送事件(SendGameplayEventToActor)。

下图则是发送了一个名为GroundPoundGameplayEvent。它会触发技能中配置的名为GroundPound的效果容器。

gga make melee attack 2

在技能收到相关事件后,会触发ApplyEffectContainer。它内部执行流程是:

  1. 通过EventTag找到EffectContainerMap中对应的Container,创建Container的实例.
  2. Cotainer实例生成那一刻,内部会完成获取目标并加入到TargetData,以及创建游戏效果实例。
  3. 将所有创建的游戏效果实例应用到所有获取的目标Actor上,一气呵成。
gga make melee attack 3

由于前面的那个动画执行的是一个大范围攻击的技能,所以我们可以看看它的TargetingPreset是如何配置的。

它定义了一个半径1米,长度6米的球形检测,且只检测Pawn。

gga make melee attack 4