8.9学习记录

问问题记录:
打断点走一下流程看看各个事件是怎么发生的,
一些细节的具体实现没必要看

UE4 反射

反射:运行时自检、
蓝图和代码的同步,GC都依赖于反射

UBT:UnrealBuildTool C#类型,编译由其处理,Target,Build是为其服务的。
扫描头文件,记录每一个包含UCLASS,USTRUCT等等具有反射功能的模块,若上面的带有反射的头文件发生了变化则调用UHT。
UHT:UnrealHeaderTool C++,代码解析生成工具,宏和include,generated.h信息都辅助其生成相应的C++反射代码。
分析头文件,创建一系列反射数据,并生成包含反射数据的C++代码以及帮助函数和thunk函数
UBT和UHT合作实现反射。

代码编译的两个阶段:

  1. UHT被调用,解析C++headeer中引擎相关的部分,并生成自己的代码,生成UObject等基础的部分。
  2. 完成上一步后才对结果用普通编译器编译。

generated.h里面是宏,一个很大的宏把所有和反射相关的方法和结构体连接到一起。
generated.cpp中是函数定义,UHT根据用到的宏生成改文件

看GAS流程

用rider debug但是不好使,试了攻击必被调用的PreAttributeChange也不能正常走到断点停止
先用我自己的项目泡一下试试,排除样例项目因为什么神秘原因不会调用PAC,但是我并没修改什么内容他却要重新build一下。。

找到正确的debug方式了,但是rider debug的话总要进入汇编代码,不论DebugGame还是Developer模式都是一样,
用回visual studio 但是符号常量没有,有去重新安装,安装提示空间不够,发现电脑有两个VS2019就删除了第一个结果把当前用的删除了,用另外一个debug但另外一个没有UE4的运行组件,于是去下组件,下完组件debug十分钟进程未响应了。崩溃了。

  1. CharaterBase构造函数:显式实例化ASC和AttributeSet,默认level为1
  2. LoadInvetory
  3. PossedBy
  4. AddStartUpGameplayAbilities------CahraterBase
  5. PreAttributeChange调用
    AdjustAttributeForMaxChange:

重新装好编译一直在加载符号,今天估计就这样了。
明天一定好好学习不摸鱼

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值