unreal engine gameplay abiliity 获取ability的cooldown剩余时间

unreal engine gameplay abiliity 获取ability的cooldown

版本 5.4.4

参考

测试代码

if (HasAuthority() && AbilitySystemComponent)
	{

		TArray 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);
				}
			}
		}
	}

你可能感兴趣的:(虚幻,unreal,engine,5,unreal,engine)