能力系统组件(GameplayAbilityComponent)
用途:用于储存、激活角色能力系统
与官方能力系统不同,插件为能力(GA)添加了执行的状态(原来分为激活、关闭状态,现在分为激活、执行、关闭),执行后才会播放蒙太奇与添加BUFF等,原来的激活则用于预定能力等
变量 | 描述 |
---|---|
AbilityInstances | 拥有的能力实例 |
ActivateAbilityInstances | 激活的能力实例 |
ExecuteChildAbilityTag | 执行子能力标签 |
PredetermineGameplayAbility | 预定的下个能力 |
ExecuteGameplayAbility | 正在执行的能力 |
bCanPredetermine | 可预定能力 |
bPredetermineExecuteImmediately | 预定能力后可立刻执行,用于收刀时追加招式 |
ExecuteImmediatelyAbilies | 可立刻执行的能力列表,父能力执行时其子能力标签列表 |
PlayMontageAndWaitTask | 当前蒙太奇播放任务 |
ChildAbilityMap | 子能力地图,父能力执行时将子能力拷贝到该变量中,调用ApplyInput函数时将会从该列表中匹配下个能力 |
bEnableAnticheating | 开启反作弊,注意,开启后将会禁用 ServerCurrentMontageSetPlayRate ServerCurrentMontageJumpToSectionName ServerCurrentMontageSetNextSectionName |
函数 | 描述 |
ApplyPredetermineAbility(UUltimateGameplayAbility* GameplayAbility)(非公开) | 应用预定能力 |
ClientTryExecuteAbility(FGameplayAbilitySpecHandle AbilityHandle) | 客户端尝试执行能力,当能力为不可复制时将使用组件内的函数执行能力 |
PlayMontage_Task(UGameplayAbility* OwningAbility,FName TaskInstanceName,UAnimMontage* InMontageToPlay,float Rate ,FName StartSection,bool bStopWhenAbilityEnds,float AnimRootMotionTranslationScale,float StartTimeSeconds) | 播放蒙太奇任务 |
ApplyInput(FGameplayTagContainer ApplyInputTags) | 应用输入,用于调用子能力 |
OpenExecuteImmediately(UUltimateGameplayAbility* GameplayAbility) | 开启子能力立即执行 |
CloseExecuteImmediately() | 关闭子能力立即执行 |
BeginPredetermine(bool bExecuteImmediately) | 开始预定能力 |
ExecutePredetermine(bool bNotifyUse,bool bExecuteImmediately) | 执行预定能力 |
DoesOwnerHasTags(FGameplayTagContainer Tags) | 拥有者是否拥有标签 |
DoesAbilityExecuted(FGameplayTagContainer Tags) | 能力是否正在执行 |
CancelAbilityByTags(FGameplayTagContainer Tags) | 使用标签关闭能力 |