13.5 GAS与连击

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

猜你喜欢

转载自blog.csdn.net/xcinkey/article/details/128028686
gas