当前位置: 首页 > news >正文

AbilitySystemComponent和AbilityTask

AbilityTask 是 Gameplay Ability System(GAS)框架的核心组件之一,用于处理能力(Ability)执行过程中的异步操作。它允许开发者在能力激活后创建可中断、可暂停的任务,处理如动画播放、特效生成、输入响应等耗时或需要等待的操作。

example:比如下方的两个不同时态的接口

virtual void Activate() override;
virtual void OnDestroy(bool bInOwnerFinished) override;

 

 

 

AbilitySystemComponent(简称 ASC)是 Gameplay Ability System(GAS)的核心组件,负责处理游戏中的能力(Ability)、属性(Attribute)、效果(Gameplay Effect)等核心机制。它是连接角色与 GAS 系统的桥梁,几乎所有 GAS 相关的功能都需要通过它来实现。

 

example:

 

// 在角色类中声明ASC

UPROPERTY(VisibleAnywhere, Category = "GAS")

UAbilitySystemComponent* AbilitySystemComponent;

virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override;

// 示例:授予单个能力
FGameplayAbilitySpec AbilitySpec(UMyGameplayAbility::StaticClass());
AbilitySystemComponent->GiveAbility(AbilitySpec);

 

// 示例:给自己应用一个buff
UGameplayEffect* BuffEffect = LoadObject<UGameplayEffect>(nullptr, TEXT("/Game/Effects/GE_SpeedBoost"));
if (BuffEffect)
{
FGameplayEffectContextHandle Context = AbilitySystemComponent->MakeEffectContext();
FGameplayEffectSpecHandle Spec = AbilitySystemComponent->MakeOutgoingSpec(BuffEffect, 1.0f, Context);
AbilitySystemComponent->ApplyGameplayEffectSpecToSelf(*Spec.Data.Get());
}

 

处理属性变化
在UAttributeSet中重写PostGameplayEffectExecute,处理属性修改后的逻辑(如生命值归零时触发死亡)。

http://www.wxhsa.cn/company.asp?id=5002

相关文章:

  • AT_arc171_c [ARC171C] Swap on Tree
  • 202509_QQ_冷门的Base家族
  • SpawnActorDeferred()和SpawnActorOfClass()
  • 【QT】信号和槽
  • 学习日报|线程池专题学习总结 - 详解
  • 如何设计业务架构 - 智慧园区
  • snmp协议
  • 刷题复习(四)二分搜索
  • aardio | 通过点击checkbox复选框本身判断是否勾选
  • 项目介绍
  • 新媒体运营用AI排版工具|10分钟搞定公众号图文的全流程指南
  • 练习第一天学习的内容
  • 常见小错误 FREQUENTLY MADE MISTAKES IN OI
  • ctf工具整理
  • 力扣39题 组合总和
  • 250915 jave se简单过完一遍
  • 详细介绍:Linux相关概念和易错知识点(44)(IP地址、子网和公网、NAPT、代理)
  • 详细解析为什么将 ThreadLocal 声明为 static final ?
  • AT_arc183_b [ARC183B] Near Assignment
  • 0128_模板方法(Template Method)
  • kubectl 常用命令的分类汇总(一)
  • 完整教程:C3P0连接池适配HGDB
  • kubectl 常用命令的分类汇总(二)
  • ECT-OS-JiuHuaShan框架的逻辑是自洽的,是基于数学表达,不替代现实的苦辣酸甜。
  • 《FastAPI零基础入门与进阶实战》第18篇:Token验证改善--CRUD中应用 - 详解
  • 【C++】设计模式之PIMPL模式
  • 力扣34题 在排序数组中查找元素的第一个和最后一个位置
  • ECT-OS-JiuHuaShan框架编程的示范与分析,无懈可击的数学逻辑自洽
  • 阿里妈妈方圆体如何使用圆角
  • 使用 systemd 管理 Python 项目(示例:confhub-sync)