文章目录
前言
AbilityTask任务可以理解成Ability的手脚,Ability激活后向具体执行的AbilityTask发出指令,这些AbilityTask负责具体的实施。
一、 AbilityTask定义
GameplayAbility
只能在一帧中执行, 这本身并不能提供太多灵活性, 为了实现随时间推移而触发或响应一段时间后触发的委托操作, 我们需要使用AbilityTask
.
GAS自带很多AbilityTask
:
- 使用
RootMotionSource
移动Character的Task - 播放动画蒙太奇的Task
- 响应
Attribute
变化的Task - 响应
GameplayEffect
变化的Task - 响应玩家输入的Task
- 更多
UAbilityTask
的构造函数中强制硬编码允许最多1000个同时运行的AbilityTask
, 当设计那些同时拥有数百个Character的游戏(像RTS)的GameplayAbility
时要注意这一点.
二、 自定义AbilityTask
通常你需要创建自己的自定义AbilityTask
(C++中). 样例项目带有两个自定义AbilityTask
:
PlayMontageAndWaitForEvent
是默认PlayMontageAndWait
和WaitGamepl