unreal engine gameplay abiliity 获取ability的cooldown
版本 5.4.4
参考
测试代码
if (HasAuthority() && AbilitySystemComponent){TArray<FGameplayAbilitySpecHandle> OutAbilityHandles;AbilitySystemComponent->GetAllAbilities(OutAbilityHandles);for (const FGameplayAbilitySpecHandle& Spec : OutAbilityHandles){bool bInstance;const UGameplayAbility* Ability = UAbilitySystemBlueprintLibrary::GetGameplayAbilityFromSpecHandle(AbilitySystemComponent, Spec, bInstance);if (Ability && Ability->AbilityTags.HasTag(FGameplayTag::RequestGameplayTag(FName("Ability.BeastPower")))){// float CdRemaining = Ability->GetCooldownTimeRemaining();float CdRemaining;float duration;Ability->GetCooldownTimeRemainingAndDuration(Spec, Ability->GetCurrentActorInfo(), CdRemaining, duration);if (CdRemaining > 0.0f){UE_LOG(LogTemp, Log, TEXT("%s %f / %f"), *Ability->GetName(), CdRemaining, duration);}}}}