GAS技能系统基本概念
参考:[UnrealOpenDay2020]深入GAS架构设计 | EpicGames 大钊哔哩哔哩bilibili
词汇表
UAbilitySystemComponent - ASC ——只有拥有ASC的Actor才有释放管理技能的能力
UGameplayAbility - GA ——一个技能的主体逻辑
UGameplayEffect - GE ——一个技能的效果(属性的修改,动作的触发)
UGameplayCueNotify - GC ——特效部分(一次性特效、持续性特效)
FGameplayAttribute - Attribute ——一个游戏属性(生命值等等),多个组成AttributeSet挂载在Actor上
FGameplayTag - Tag ——给类和对象挂标签,层次化搜索
UGameplayTask - Task ——异步操作任务
FGameplayEventData - Event ——游戏事件(ASC之间)
核心架构
- Editor(绿色)主要是实现UI部分
Tag
本质是轻量化的FName、内存中组织为树状结构(UGameplayTagsManager),模式为A.B.C代表树状的嵌套结构。在编辑器中的ProjectSettings左边的ProjectTags可找到全局定义的所有Tags。
GameplayAttribute
- float BaseValue——初始值
- float CurrentValue——被buff效果叠加后的值
方便进行回滚
GameplayEffect
- 修改属性——统一的流程途径修改GA,方便统一进行回调
- 流程效果——修改属性的逻辑,Tag增减(眩晕、沉默),给与能力
GameplayCue
可以在GE里配置触发,也可以在GA里手动进行调用触发
- Static:一次性效果(爆炸)
- Actor:持久(火焰)
GameAbility
- 不要把基础移动、射线检查、UI交互当成能力
- 表示专门用来触发的什么事件
GameplayTask
- 执行异步任务(等待蒙太奇、等待一段时间)
- 框架中已经有一系列预制好的Task
GameplayEvent
- 手动触发Actor之间的游戏时间
- 靠Tag进行识别,可以携带Payload数据(如子弹命中后的回调)
AbilitySystemComponent

- 运行核心、管理协调
- 技能系统的实质,就是Actor上的ASC向另一个Actor的ASC上相互增删Effect、触发Cue、贴标签的流程。
总结








