目录
- 1. 连击检测窗口与砍出的第二刀
1. 连击检测窗口与砍出的第二刀
连击的实现思路是,在劈砍动画的期间的某一段窗口期,令角色能够再次响应输入,完成伤害动作并进入新的连击动画,直到连招打完。所以核心关键就在于这一段连击窗口的实现。
这里采用GE的形式,即开启连击窗口时赋予自身一个可连击的buff,结束连击窗口时移除buff;期间每次激活技能都尝试去查询当前可以进行的连击招数,然后激活正确的招数GA。即分别为连击制作GA,再利用另外一个负责触发连击GA的GA负责进行查询和触发。
连击GA示例(直接继承自前文中的攻击GA,替换攻击动画,修改ActivationOwnedTags,并为该GA设置AbilityTrigger,即由GameplayEvent事件来进行触发):

相应的Montage动画上设置连击窗口(GameplayState):

连击窗口中应用和移除GameplayEffect:


这个GE的任务主要就是给与AvatarActor一个有持续时间的GameplayTag - CanCombo:

接下来就是重头戏,负责分发的GA实现。连击GA现在都是由GameplayEvent进行触发即可,那么这分发GA就专门负责去发送GameplayEvent。
先看看如何砍出第一刀:
如果当前不处于攻击中,或者当前处于连击的最后一击时,那么就可以触发第一刀。ComboTag是连击中所有招数的GameplayEvent对应的GameplayTag。

负责,无法触发第一刀的情况下,就去匹配是否当前处于连击中的某一招,如果查到了的话,那么就找到下一招的GA的GameplayTag,发送事件去进行触发。

简单效果演示:
基于GAS的简单连击实现

















