Unreal Engine 4 —— GAS系统学习 (二十三) 将技能装备到技能栏

欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617

 

将技能装备到技能栏听上去比较简单,但是沿续之前的思路,技能显示的Material Instance是封装到了FGameplayAbilityInfo类中的。

所以本节还是稍微有点复杂。

为了一次性能够初始化多个技能,我们新建一个方法。以下是在CPP中的实现。

void AShinbi::AquireAbilities(TArray<TSubclassOf<UGameplayAbility>> Abilitylist)
{
	for (TSubclassOf<UGameplayAbility> singleAbility : Abilitylist) {
		AquireAbility(singleAbility);
		if (singleAbility->IsChildOf(UMyGameplayAbility::StaticClass())) {
		UMyGameplayAbility *AbilityAddToUI = singleAbility->GetDefaultObject<UMyGameplayAbility>();
		AddAbilitytoUI(AbilityAddToUI);
		}
	}
}

 AddToUI方法是通过蓝图实现的,并不在代码中实现。通过UMyGameplayAbility的方法拿到所有GA下挂的GE属性与想要的参数,通过方法返回FGameplayAbilityInfo类的对象,将info交给AddToUI方法,由蓝图实现后续。

void AShinbi::AddAbilitytoUI(UMyGameplayAbility *ablity)
{
	FGameplayAbilityInfo info = ablity->GetGameplayAbilityInfo();
	AddToUI(info);
}

在蓝图中,首先新建一个UMyGameplayAbility的矩阵变量。输入我们的招式。

在主UI蓝图中把所有招式放到一个数组中即可。 

第二,打开技能蓝图,按照如下连接,打包好的info从这里送入到技能蓝图,改变技能的图片,显示数值等。

 新建一个Material Instance,载入Dash技能图片。

 

打开DASH招式,载入刚才建好的材质对象。这时候DASH招式的材质对象会被打包送入info。

 

 打开人物蓝图,我们之前的AddToUI方法准备实现。

 如果招式等于GA_HEAL,设置到第一个技能栏。

如果招式等于GA_DASH,设置到第二个技能栏。

这里先不设置其他技能栏。

效果如下:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值