虚幻引擎5 GAS开发俯视角RPG游戏 P07-02 授予能力

1.创建GA类:

2.在角色基类增加一个函数,用于应用技能

/*
 * 角色能力
 */
#pragma region Abilities
	
protected:
	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 Abilities
	
public:
	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);
	//服务器端初始化ASC
	InitCharacterASC();

	AddCharacterAbilities();		//添加能力
}

5.蓝图创建能力类:

6.角色添加能力:

测试:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值