虚幻引擎5 GAS开发俯视角RPG游戏 P07-02 授予能力
1.创建GA类:


2.在角色基类增加一个函数,用于应用技能
/** 角色能力*/
#pragma region Abilitiesprotected:void AddCharacterAbilities();UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="CC|Abilities")TArray<TSubclassOf<UGameplayAbility>> StartupAbilities; //初始能力#pragma endregion
void ACC_CharacterBase::AddCharacterAbilities()
{if (CC_AbilitySystemComponent == nullptr){CC_AbilitySystemComponent = CastChecked<UCC_AbilitySystemComponent>(AbilitySystemComponent);}CC_AbilitySystemComponent->AddCharacterAbilities(StartupAbilities);
}
3.能力系统组件类添加函数:
/** 角色能力*/
#pragma region Abilitiespublic:void AddCharacterAbilities(const TArray<TSubclassOf<UGameplayAbility>>& StartupAbilities);#pragma endregion
void UCC_AbilitySystemComponent::AddCharacterAbilities(const TArray<TSubclassOf<UGameplayAbility>>& StartupAbilities)
{for (const TSubclassOf<UGameplayAbility>& AbilityClass : StartupAbilities){FGameplayAbilitySpec AbilitySpec = FGameplayAbilitySpec(AbilityClass, 1);GiveAbilityAndActivateOnce(AbilitySpec);}
}4.服务器初始化能力系统组件时调用方法:
Source/CC_Aura/Private/Characters/CC_HeroCharacter.cpp
void ACC_HeroCharacter::PossessedBy(AController* NewController)
{Super::PossessedBy(NewController);//服务器端初始化ASCInitCharacterASC();AddCharacterAbilities(); //添加能力
}
5.蓝图创建能力类:



6.角色添加能力:

测试:


