[游戏开发][UE5.3]GAS学习心得

GAS(GameplayAbilitySystem)

UE提供的一套技能框架,这个框架也不是万能的,甚至各个部件你要进行封装开发,但这也比你从头写一套技能框架要容易很多。

GAS功能极其强大,所以它是一个庞大的系统,如果想运用得当,最好是熟知每一个类的每一个变量如何使用,当然你也可以有选择的熟知大部分细节,也不耽误制作。

ASC(AbilitySystemComponent)

它是GA的底层,通过它Component的名字可以看出,它类似一个组件,加到谁身上,谁就拥有了ASC功能。

GameplayTag

这是UE引擎本身就提供的功能,GAS只是沿用了这个功能。

GA(Gameplay Ability)

表现:GA是在UE里一个继承自GameplayAbility的蓝图类,在实际项目中

GE(Gameplay Effect)

GE相关的名词

GameplayEffect

GameplayEffectExecutionCalculation

GE是什么

表现:GE是在UE里一个继承自GameplayEffect的蓝图类,我创建了一个名为GE_My的蓝图

效果:GE可以理解为Buff与影响的集合,或者说是高级版的Buff


GE生效入口

GameplayAbility

ApplyGameplayEffectSpecToTarget

ApplyGameplayEffectToTarget

ApplyGameplayEffectToOwner


AbilitySystemComponent

ExecuteGameplayEffect

ApplyGameplayEffectSpecToSelf

ApplyGameplayEffectSpecToTarget

ApplyGameplayEffectToSelf

ApplyGameplayEffectToTarget


CMGameplayAbility

MakeEffectContainerSpecFromContainer

MakeEffectContainerSpec

ApplyEffectContainer

ApplyEffectContainerSpec

MakeEffectContextCustom

GetActiveGameplayEffectContext

GE生效流程

GE生效只讲数值类GE,

前面讲了GE的文件创建和生效入口,那接下来就要让GE生效了。

方式1:在GA蓝图里调用ApplyGameplayEffectToOwner即可让GE生效。这种方法缺点比较大,一般在demo里面调试用,就是必须在蓝图里选中要生效哪个GE,在正式的项目中我们有无数个GE,手动选择GE肯定是不行的。

方式2:

GE计算

下面举例一个伤害GE,添加了Modifer的GE生效时,GE_给目标的生命值-15点

正常的项目里肯定不能这么整啊,因为每个人的攻击力都不一样,你咋知道扣多少点呢?

因此,Modifer的方式肯定要抛弃,我们用GE的Execution

GE的Execution就是把属性计算放到C++类里去执行,这个CalculationClass变量就是你自定义的C++类,前提是你的C++类必须继承GameplayEffectExecutionCalculation,才能在蓝图中选中。例如我项目里的UCMDamageCalculation,Calculation类如何知道是谁砍了谁,这里就看一下晕基类方法 Execute

void Execute(const FGameplayEffectCustomExecutionParameters& ExecutionParams, FGameplayEffectCustomExecutionOutput& OutExecutionOutput) const;

一切奥秘在变量FGameplayEffectCustomExecutionParameters内。它提供了上下文关系。

通过FGameplayEffectCustomExecutionParameters拿到攻击方和防守方的ASC,同时就能拿到ASC归属于哪个Character,从而能拿到Character上的所有属性值。

拿到双方属性值,那岂不是可以为所欲为了,想改啥就改啥。

FGameplayEffectCustomExecutionParameters这个属性是从哪传来的

看一下官方文档

4.5.12.1.4 GameplayEffectContext

GC(GameplayCue)

表现层相关

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/543736.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux进程状态】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、直接谈论Linux的进程状态 看看Linux内核源代码怎么说 1.1、R状态 -----> 进程运行的状态 1.2、S状态 -----> 休眠状态(进程在等待“资源”就绪) 1.3、T状…

Java代码基础算法练习-判断字符串是否为回文-2024.03.16

任务描述: 回文串是指一个正读和反读都一样的字符串,比如“level”或者“noon”等。要求输入 一个字符串,判断此字符串是否为回文。(注:设字符串长度小于20) 任务要求: package suanfa;import…

学python新手如何安装pycharm;python小白如何安装pycharm

首先找到官网: Download PyCharm: The Python IDE for data science and web development by JetBrains 打开后选择下载,下图标红部分 点击exe程序,点击下一步! 选择安装路径,下一步 弹出界面全选 选择默认 然后直接…

第三门课:结构化机器学习项目-机器学习策略

文章目录 1 机器学习策略一1.1 为什么是ML策略?1.2 正交化1.3 单一数字评估指标1.4 满足和优化指标1.5 训练、开发及测试集划分1.6 开发集和测试集的大小1.7 什么时候改变开发、测试集和指标?1.8 为什么是人的表现?1.9 可避免偏差1.10 理解人…

IDEA创建Sping项目只能勾选17和21,没有Java8?

解决办法: 替换创建项目的源 我们只知道IDEA页面创建Spring项目,其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https://start.spring.io/或者http://start.springboot.io/替换为 https://start.aliyun.com/

python的小技巧一

文章目录 python的小技巧系列1、变量相关变量交换三元运算符一个数值的范围比较有的场景下使用 try...exception 代替if...else 2、字符串相关格式化连接字符串的分割字符串的连接 3、生成器4、列表相关取最后一个元素判断列表是否为空列表合并去除列表中的重复值判断某个值是包…

python知识点总结(一)

这里写目录标题 一、什么是WSGI,uwsgi,uWSGI1、WSGI2、uWSGI3、uwsgi 二、python中为什么没有函数重载?三、Python中如何跨模块共享全局变量?四、内存泄露是什么?如何避免?五、谈谈lambda函数作用?六、写一个函数实现字符串反转,尽可能写出你知道的所…

lua脚本的基础内容

官方地址:http://luajit.org/ 官方wiki地址:http://wiki.luajit.org/Home 推荐书籍: OpenResty 最佳实践:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ lua基础文档:https://www.runoob.com/l…

SpringBoot Servlet容器启动解析

介绍 容器架构 容器处理请求 容器启动全局流程解析 启动前准备 WebServer创建入口 WebServer创建 Servlet启动 Web容器工厂类加载解析 Web容器个性化配置 属性注入 工厂类初始化 BeanPostProcessor方法实现 定制化流程 面试题 请描述下Servlet容器启动流程?介绍下…

深入理解TCP:序列号、确认号和自动ACK的艺术

深入理解TCP:序列号、确认号和自动ACK的艺术 在计算机网络的世界里,TCP(传输控制协议)扮演着至关重要的角色。它确保了数据在不可靠的网络环境中可靠地、按顺序地传输。TCP的设计充满智慧,其中序列号(Seq&a…

uniapp 写安卓app,运行到手机端 调试

手机 设置》关于手机》点击版本号 4-5次,弹出手机锁屏页面,输入手机锁屏密码 2.手机 设置中 》搜索 开发人员选项 》 调试》打开USB调试 同页面 找到 选择USB配置》选择 MIDIhbuilder 编辑器 点击 》运行》运行到手机或模拟器》运行到Android App基座 》…

[Windows] Win11 常用快捷键

文章目录 🚀 [Windows] Win11 常用快捷键🌐 Windows 操作系统🔥 Windows 11 🌐 Windows 11 快捷键概览🔥 基本快捷键🔥 窗口快捷键🔥 功能快捷键 📝 小结 🚀 [Windows] W…