一、创建所有能力的基类TestBaseGameplayAbility
1、在UE里新建C++,路径填写新的文件夹名来在C++Classes目录下同时创建新的文件夹
2、注意,创建完成后可能会报错,是因为CPP文件里引用的路径名错了,删除新建文件夹名即可
3、把学习能力那一篇里的AquireAblility函数参数类型改成新的基类
TestCharacter.h:
#include "项目名/Gameplay/TestBaseGameplayAbility.h"
void AquireAbility(TSubclassOf<TestBaseGameplayAbility> Ability);
TestCharacter.cpp:
void ATestCharacter::AquireAbility(TSubclassOf<TestBaseGameplayAbility> Ability)
二、创建基类TestBaseGameplayAbility的蓝图类,作为所有能力蓝图的基类
命名为GAB_TestBaseGameplayAbility
三、创建普通攻击蓝图类GAB_PlayerAttack, 继承自上面创建的GAB_TestBaseGameplayAbility蓝图基类
1、蓝图说明
Event Activate Ability:激活能力时调用
Event OnEndAbility:能力结束时调用
Was Cancelled:是否因为取消而结束能力(打断?人为取消?)
2、激活能力时打印测试
3、在角色蓝图BP_TestBaseCharacter里编写逻辑,选择创建好的GAB_PlayerAttack能力蓝图
4、在BP_TestPlayerController蓝图类中编写点击鼠标左键调用普攻的逻辑
5、注意继承自BP_TestBasePlayerController蓝图类的BP_TestPlayer类中的BeginPlay事件要调用父类的BeginPlay事件
6、运行输出Hello