GAS是一个可以用来做复杂技能的框架系统
在了解GAS大致的框架和基本的初始使用方式后我做了一下自己的笔记和总结
相关插件
Able Ability System技能编辑AAS使用自己的动画系统
Ascent Combat Framework 技能系统ACF功能更全但是源码可读性弱
GAS的各个模块
1.Ability System Component是GAS的基础组件
本质上是一个UActorComponent,用于处理整个框架下的交互逻辑,包括使用技能(GameplayAbility)、包含属性(AttributeSet)、处理各种效果(GameplayEffect)
所有需要应用GAS的对象,都必须拥有GAS组件
拥有ASC的Actor被称为ASC的OwnerActor,ASC实际作用的Actor叫做AvatarActor
ASC可以被赋予某个角色(Demo),也可以被赋予PlayerState(网络游戏)
激活GAS组件
2.GameplayTags是一种层级标签 (Unreal里的功能)
可以在玩法设计中更高效的标记对象行为或状态
3.Gameplay Ability
标识了游戏中一个对象可以做的行为或技能
对象可以同时激活多个GA,基本的移动输入、UI交互行为则不建议用过GA来实现
下面是GA内部的执行框架
4.Gameplay Effect
GE是Ability对自己或者他人产生影响的一种途径
GE也可以被理解为游戏中的Buff
在GAS中的GE释放技能时候的伤害结算和特殊控制效果等,包括修改GT都是通过GE来实现的
GE相当于一个可配置的数据表不可以添加逻辑
GE是纯蓝图,继承为蓝图类使用
5.AttributeSet
在Character里声明的内容
Component在初始化的时候会检查父类的AttributeSet,并且这个指针必须用UPROPERTY标记
然后正常在构造函数定义组件
AS可以定义多个,不同角色的不同属性情况时用多个,方便管理
AS里属性改变前和属性改变后的回调函数
使用方法
1.打开插件
打开插件后会增加以下选项
2.CS文件里添加
并且在使用的类里添加接口:
然后是之前说过的声明并且在构造里实例化
3.然后激活组件使用
4.要先GiveAbility才能使用技能
在项目里配置Tag