diff --git a/03-UnrealEngine/Gameplay/GAS/GAS Ability输入绑定.md b/03-UnrealEngine/Gameplay/GAS/GAS Ability输入绑定.md index ee7c80c..21ec974 100644 --- a/03-UnrealEngine/Gameplay/GAS/GAS Ability输入绑定.md +++ b/03-UnrealEngine/Gameplay/GAS/GAS Ability输入绑定.md @@ -107,6 +107,30 @@ void UGSAbilitySystemComponent::AbilityLocalInputPressed(int32 InputID) } ``` +# 暂时需要使用GAS默认的枚举绑定Input的理由 +GameplayAbilitySpec.h的InputPressed: +```c++ +UPROPERTY(NotReplicated) +uint8 InputPressed:1; +``` + +该变量用于本地输入判断,可以使用自己的代码代替,但涉及到以下几个函数,工作量比较大。 +- UAbilitySystemComponent + - AbilityLocalInputReleased + - AbilitySpecInputPressed + - InternalServerTryActivateAbility + - InternalTryActivateAbility + - TryActivateAbility + - 间接关系 + - BindAbilityActivationToInputComponent + - SetBlockAbilityBindingsArray + - PressInputID + - ReleaseInputID +- UAbilityTask_WaitInputPress +- UAbilityTask_WaitInputRelease + +理论上是可以将其修改成增强输入的版本,只需要将枚举循环改成InputActionContext循环即可。 + # SDHGame 李兄是在状态机每个节点的StateBegin()中调用CreateDynamicSkillInputActionMappingContext()进行动态绑定的。FSDHSkillInputActionBinding里包含FEnhancedActionKeyMapping相关数据。 ```c++