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的简单连击实现