Unreal Engine 4 —— GAS系统学习 (三) 为主角添加技能延迟

 

首先更改我们的获得技能方法的内容:

更改后如下:

 

 1 void AShinbi::AquireAbility(TSubclassOf<UGameplayAbility>list){
 2 
 3 
 4     //读取GameplayAbility


 5         if (AbilityComp) {
 6                 //为主角添加技能,FGameplayAbilitySpec是从菜单中选取的具体的技能,并将技能的各项属性打包到FGameplayAbilitySpec结构体中
 7                 //通过AbilityComp添加技能。而AbilityComp组件是属于主角的,所以主角可以拥有该技能。
 8                 AbilityComp->GiveAbility(FGameplayAbilitySpec(list, 1, 0));
 9                 //初始化主角技能,填入技能的拥有者和发起者。
10                 AbilityComp->InitAbilityActorInfo(this, this);
11             //播放攻击动画
12             //PlayAnimMontage(montageAttack);
13             //激活攻击能力,该攻击能力主要加载了技能CD。
14         }
15 }

 

 

再更改下攻击技能的内容。

取消了蒙太奇动画的播放。

 

1 void AShinbi::Attack()
2 {
3     
4     auto GA_Melee = LoadClass<UGameplayAbility>(NULL, TEXT("GameplayAbilityBlueprint'/Game/BP/Abilities/GA_Melee.GA_Melee_C'"));
5     AbilityComp->TryActivateAbilityByClass(GA_Melee, true);
6 }

 

 

新建一个GameplayAbility的蓝图。

 

 

 

再新建一个GameplayEffect蓝图。

 

 

设置技能冷却时间为1.0秒

 

 

 

在GrantedTags一栏为技能添加标签,必须添加,内容随意。

 

 

打开新建好的GameplayAbility蓝图,选择好刚设置完成的GameplayEffect蓝图,这里我起名为GE_CD。

 

 

在GameplayAbility蓝图中如此连线。

 

 

 

CommitAbility是通知GE_CD,校验其有效性,然后播放动画,注意,该播放动画的函数来自Ability栏目。

最后记得使用EndAbility,结束技能释放过程。

 

在技能释放过程中,再次点击技能,无法释放,等技能冷却1秒钟后,可以再次释放。

效果如下:

 

整体过程是,AquireAbility方法将技能注册到角色上,按鼠标左键进行攻击,攻击时候,激活技能。在GameplayAbility中会激活GameplayEffect效果,播放动画,然后结束技能释放。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值