首页 > 其他分享 >游戏任务(GameplayAbilityTask)

游戏任务(GameplayAbilityTask)

时间:2022-10-18 23:57:40浏览次数:49  
标签:Task 游戏 实现 可以 GAS 任务 播放 监听 GameplayAbilityTask

为什么要使用Task?

GA没有Tick,激活接口是单帧执行,GA中的各种异步逻辑,比如播放动画、等待武器碰撞、蓄力等逻辑,都是通过Task异步实现的。

Task并不是GAS的专有概念,而是UE源生的。就和普通的AbilityTask一样,可以监听外部事件,一般要绑定一个多播委托,但如果是ASC内部的时间则可通过回调直接调用。

Task拥有Tick,所以可以处理持续或者等待一段时间的逻辑。

Task建议大家在C++中进行拓展,尽量提供在整个项目,甚至跨项目通用的任务功能。

GAS的即开即用Task

GAS实现了一些现成的Task,这里仅介绍其作用,不分析实现(他实现了52个Task!很有可能一行代码不用写就能做很复杂的技能。。。):

强制运动

包括向某方向位移、模拟跳跃、向目标移动、向点移动等,这些位移是强制的,实际使用的时候可以拓展成与控制GE绑定,或者直接提供Tag。

播放动画蒙太奇

播放蒙太奇,并且可指定播放速度、开始播放的段、对RootMotion的缩放(这个可以做到让RootMotion制作的击退动作可以匹配任意距离)

流程控制

重复执行:可以每间隔一段时间,指定特定次数行为,通过获取AsyncTask对象,还可以在执行过程中动态控制这个流程。

等待一段时间。

监听系列:GAS实现大量的“等待XXX",用来处理各种各样的外部输入。

监听一个能力执行

监听一个能力执行成功

监听属性变化

监听网络输入

监听玩家输入

监听GE

监听重合事件(自身撞上了什么东西):硬要用这个来做近战攻击的命中也可以做,但绝大部分情况不适合,最好实现自己的Task。

监听标签

 

标签:Task,游戏,实现,可以,GAS,任务,播放,监听,GameplayAbilityTask
From: https://www.cnblogs.com/yutuerzf/p/16804670.html

相关文章