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

06 GE Modifier

看看这个

问题。怪!究竟下一个modifier能不能访问到上一个?刚才还可以啊现在怎么不行了。
这里捕获了Owner的属性,Source不知道在哪捕获的


CalculationType:
1.使用计算后的值
2.使用基础值
3.使用计算后的值-基础值。

BackingAttributes

Source指Instigator,按道理应该在MakeOutGoingContext的时候就有了。
不知道为什么InstigatorASC = null
因为InstigatorASC是从OwnerActor中获取ASC。
PlayerState而不是Controller
初始化成功😀

总结:Source指GEContext中的InstigatorAbilitySystemComponent,在使用ASC->MakeOutGoingContext()时,已经指定了此ASC为OwnerActor身上的ASC。在我这个情况下,ASC存在于PlayerState上,所以Source因该是PlayerState上的ASC,应该将OwnerActor设置为PlayerState而不是Controller。
_______________________________________额外问题————————————————

Modifier列表中,上一条结果到底能不能被下一条访问?

Health = 2,Health*=4,Health = 8
Health = 2,Mana = 2,Health+=Mana,Health = 2
Health = 2,Health +=Health,Health = 2

 

猜想:使用BackingAttribute时,取的是Apply前的值。不使用时,取得是Modifier中的值。


那这个SnapShot又是什么意思。。。。看看源码。
 

这里逐一计算Modifier的值。
这里对四种Modifier进行了Switch,第一种最简单,直接返回查曲线查到的值。

 

AttributeBased类型的Modifier的值的计算函数,在上面的情况中返回的是0。接下来看看为什么是0

 

使用AttributeMagnitude类型的计算,进入这个函数
用到一个叫做Aggregator(聚合器)的东西进行计算

 

使用BaseValue,这个此时还是0.

 总结:Modifier的值是先计算每一项的值,再根据计算结果修改Base值。所以上一项的值不能被下一项拿到。要想让Health = MaxHealth将他们分成两个GE,一个修改MaxHealth,一个修改Health.

http://www.xdnf.cn/news/46099.html

相关文章:

  • AUTOSAR图解==>AUTOSAR_RS_BSWModuleDescriptionTemplate
  • 19. git reflog
  • 力扣每日打卡16 781. 森林中的兔子(中等)
  • C++项目 —— 基于多设计模式下的同步异步日志系统(4)(双缓冲区异步任务处理器(AsyncLooper)设计)
  • 家庭电脑隐身后台自动截屏软件,可远程查看
  • Spring Data MongoDB 精华:给新手的核心注解指南
  • 从内核到用户态:Linux信号内核结构、保存与处理全链路剖析
  • 图论基础:图存+记忆化搜索
  • 基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(三)
  • 嵌入式---零点漂移(Zero Drift)
  • go+mysql+cocos实现游戏搭建
  • jetpack之LiveData的原理解析
  • 【25软考网工】第二章(8)差错控制、奇偶校验、CRC、海明码
  • Doris + Iceberg 构建冷热分层数据湖架构:架构设计与实战指南
  • Linux驱动开发--异步通知与异步I/O
  • 深度学习方向急出成果,是先广泛调研还是边做实验边优化?
  • ES6 第一讲 变量定义 堆与栈 字符串的扩展和数值型的扩展
  • c++STL——list的使用和模拟实现
  • 【题解-Acwing】790. 数的三次方根
  • 传导发射测试(CE)和传导骚扰抗扰度测试(CS)
  • 【概率论,算法】排列的峰值期望
  • seata db模式,nacos注册中心,spring boot ,spring cloud ,jdk1.8 完成的配置步骤
  • 【上位机——MFC】MFC入门
  • 状态管理最佳实践:Bloc架构实践
  • Android Jetpack Compose 状态管理解析:remember vs mutableStateOf,有啥不一样?为啥要一起用?
  • 【深度学习—李宏毅教程笔记】各式各样的 Attention
  • [原创](现代C++ Builder 12指南): [4]如何使用VCL的TStringBuilder?
  • IP数据报
  • kotlin,编码、解码
  • Navicat、DataGrip、DBeaver在渲染 BOOLEAN 类型字段时的一种特殊“视觉风格”