document.write("
// Fill out your copyright notice in the Description page of Project Settings. void UDandelionAbilitySet::GiveAbilities( UAbilitySystemComponent* AbilitySystemComponent, const UInputActionGameplayAbilityMappings* InputActionGameplayAbilityMappings ) const { if (Abilities.IsEmpty()) { UE_LOG( LogAbilitySystem, Warning, TEXT("%s: Attempted GiveAbilities with an empty ability set."), *GetFullNameSafe(this) ) return; } if (!ensure(IsValid(AbilitySystemComponent))) { UE_LOG( LogAbilitySystem, Error, TEXT("%s: Attempted GiveAbilities without a valid AbilitySystemComponent."), *GetFullNameSafe(this) ) return; } // Can still proceed without mappings. Possibly just GAs that aren't tied to IAs. if (!IsValid(InputActionGameplayAbilityMappings)) { UE_LOG( LogAbilitySystem, Warning, TEXT("%s: Attempted GiveAbilities with invalid InputActionGameplayAbilityMappings."), *GetFullNameSafe(this) ) } for (const TSubclassOf<UGameplayAbility>& Ability : Abilities) { if (!ensure(IsValid(Ability.Get()))) { UE_LOG( LogAbilitySystem, Error, TEXT("%s: Attempted GiveAbilities with an invalid GameplayAbility."), *GetFullNameSafe(this) ) continue; } GiveAbility(AbilitySystemComponent, InputActionGameplayAbilityMappings, Ability); } } void UDandelionAbilitySet::GiveAbility( UAbilitySystemComponent* AbilitySystemComponent, const UInputActionGameplayAbilityMappings* InputActionGameplayAbilityMappings, const TSubclassOf<UGameplayAbility>& Ability ) { if (const FInputActionGameplayAbilityMappingData* AbilityData = InputActionGameplayAbilityMappings ? InputActionGameplayAbilityMappings->GetMappingDataByGameplayAbilityClass(Ability) : nullptr) { FGameplayAbilitySpec AbilitySpec = FGameplayAbilitySpec(Ability.Get(), 1, AbilityData->InputID); AbilitySystemComponent->GiveAbility(AbilitySpec); return; } FGameplayAbilitySpec AbilitySpec = FGameplayAbilitySpec(Ability.Get(), 1); AbilitySystemComponent->GiveAbility(AbilitySpec); }