梳理一下迄今在GAS里和建造系统中用到的UI_02

这里继续梳理一下迄今在GAS里和建造系统中用到的UI:(仅供个人学习参考使用)

制作一个带有冷却倒计时的技能图标:

承接UE4 技能系统(GAS插件的使用) 06,没有讲的内容

1、制作图标的Material(M_Ability_Icon),设置Material Domain和Blend Mode

2、 在Icon贴图的RGB通道上乘以0.3,就会得到一张比较暗淡的图片,右图是预览Multiply的效果,Lerp节点是线性插值节点,当Alpha接近0时,输出接近A,接近1时输出接近B,英雄联盟里面的A通道是蓝色

3、 倒计时效果:VectorToRadiaValue会出现倒计时效果,Floor节点主要可以提供二值化效果,

 其中CustomToRotation那一块主要是想要中心旋转-90度

4、上述材质中的Percentage和贴图设为参数,然后基于此创建该材质的实例,例如MI_HealthRegen_Icon,用于表示各种不同技能的图标

5、图标的材质制作完成后就可以制作图标Widget了(WBP_Ability_Slot),

这里Icon_image是一张图片,调整大小,Brush中的Image可以指定制作好的图标,例如MI_HealthRegen_Icon,但是为空,表示想在蓝图中进行设置

 放置两个text,用于表示技能的消耗信息和冷却信息

6、其中在EventConstruct中隐藏冷却信息,因为只有当技能发动后才想看到倒计时

自定义一个UpdateAbilitySlot方法,用于根据技能信息更新图标和Cost,

自定义一个StartCoolDown方法,用于在技能发动后调用开始UI倒计时

(GAS中提供了代码内倒计时功能,不需要自己写,但是UI的倒计时显示要自己写,在Tick中更新CoolDown即可)

这里主要是说明技能冷却图标需要对外界提供更新信息的方法,来方便外界调用。这里需要更新的信息主要就是Icon的贴图,技能的Cost和CoolDown

7、将WBP_Ability_Slot用到PrimaryUI中,调整位置

 在PrimaryUI中定义一个AddAbilityToSlot方法,用于间接的调用之前自定义的UpdateAbilitySlot方法

8、最终在PlayerController中,自定义Event来 完成初始化技能图标的工作

在C++中GAS的逻辑就是BaseCharcater中AquireAbilities调用AquireAbility和AddAbilityToUI,最终调用的AddAbilityToUI是蓝图实现的Event

整个这一套逻辑是可复用的,日后用起来想必会更加熟悉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值