一个结构体中存在一个Val变量,Val变量的类型是FVector4,想从c++层面去遍历获得Val的值

上图是很早之前的一个Property继承关系图。

当然,在4.25UPropertyFProperty夺笋。

好处呢,见下:

没有继承UObject后的开销
提高了引擎启动时间
提高GC处理时间明显
内存使用量的减少
打包后包体体积减少

自定义结构体的遍历

USTRUCT(BlueprintType, meta=(HiddenByDefault))
struct FPostProcessSettings
{PRAGMA_ENABLE_DEPRECATION_WARNINGSGENERATED_USTRUCT_BODY()...
}

FPostProcessSettings是引擎提供的后处理的可配置参数的结构体变量

如果想修改

// this 类继承自 APostProcessVolume
FPostProcessSettings* PostProcessSettings_P = &(this->Settings);

获取Contrast

FStructProperty* StructProperty=FindFieldChecked<FStructProperty>
(PostProcessSettings_P->StaticStruct(),FName("ColorContrast"));

如果采取直接遍历StructProperty的如下方式,读取的值为0

 if (StructProperty){for (TFieldIterator<FProperty> PropIt(StructProperty->GetClass()); PropIt; ++PropIt){FProperty* Property = *PropIt;FFloatProperty* tempProperty = CastFieldChecked<FFloatProperty>(Property);float temp1 = tempProperty->GetPropertyValue_InContainer(StructProperty);UE_LOG(LogTemp,Warning,TEXT("%.2f"),temp1);}}

FProperty 没有FVector4Property

FVecyot4的定义如下

本质上仍然是一个结构体

遍历方式如下

if (StructProperty){FVector4* v = StructProperty->ContainerPtrToValuePtr<FVector4>(PostProcessSettings_P);v->X  =2 ;v->Y= 2;v->Z= 1.2f;UE_LOG(LogTemp,Warning,TEXT("%.2f,%.2f,%.2f,%.2f"),v->X,v->Y,v->Z,v->W);}

参看
UE4 从UProperty到FProperty
Unreal Property System (Reflection)

UE4_UStruct 遍历相关推荐

  1. Redis 笔记(04)— list类型(作为消息队列使用、在列表头部添加元素、尾部删除元素、查看列表长度、遍历指定列表区间元素、获取指定区间列表元素、阻塞式获取列表元素)

    Redis 的列表是链表而不是数组.这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为 O(n). 当列表弹出了最后一个元素之后,该数据结构自动被删除, ...

  2. 二叉树的前序、中序、后序非递归遍历 python实现

    前言 python中二叉树的定义: class TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = None ...

  3. 判断某数组是不是二叉树的前序遍历序列 python递归

    code class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif len(sequence) <= 0 ...

  4. python实现二叉树的重建2 之由中序遍历和后序遍历重建

    前言 通过上一节对python实现二叉树的重建1 之由前序遍历和中序遍历重建,我相信我们再来做这个问题就不难了,完全可以照猫画虎的来实现,具体的原理几乎是一样的,直接上代码了 code # 通用解法d ...

  5. python实现二叉树的重建1 之由前序遍历和中序遍历重建

    前言 此题是关于树的面试题目的常见题型,题目的含义很清晰,这个就不用多说了 解法 关于这道题的解法有很多不同的样式,通用的解法是这样的: 假如现在我们有如下两个遍历的情况 preorder: [1, ...

  6. 通过前序遍历和中序遍历构建二叉树 python实现

    前言 通过前序遍历和中序遍历构建二叉树的原理,主要是找前序遍历根节点在中序遍历中的位置,然后将二叉树而成左子树和右子树,然后依次进行这样的操作,思路还是比较简单的 代码 class Node:def ...

  7. 关于二叉树的层次遍历的花样(c++实现)

    花样变形1::二叉树层次遍历但是分层打印 分析:与普通打印多了一个分层打印,其实只要在在层次遍历中多设置一个标记变量即可 代码如下: //二叉树的层次遍历 void levelTravel(BTNod ...

  8. nvGRAPH三角形计数和遍历示例

    nvGRAPH三角形计数和遍历示例 #include " stdlib.h" #include" inttypes.h" #include" stdi ...

  9. 2021年大数据常用语言Scala(二十一):函数式编程 遍历 foreach

    目录 遍历  foreach 使用类型推断简化函数定义 使用下划线来简化函数定义 遍历  foreach 之前,学习过了使用for表达式来遍历集合.我们接下来将学习scala的函数式编程,使用fore ...

最新文章

  1. ubuntu下nginx+php5的部署
  2. ubuntu查看python版本-Ubuntu18.04下python版本完美切换的解决方法
  3. Loss Function , Cost Function and Kernel Function in ML(To be continued)
  4. java用递归的方式写n_java-使用递归将其元素加起来为n的子集的列表
  5. java调用一个方法后怎么继续执行不等待该方法的返回_Java面试题大全2020版(二)...
  6. Django模板系统 运算
  7. 晨哥真有料丨盘点追女生的作死行为!
  8. 小强的HTML5移动开发之路(14)——Video标签详解
  9. python文件和目录访问File and Directory Access
  10. 不到 20 人的互联网公司该去吗?
  11. iconfont 彩色图标的使用
  12. oracle10g dblink优化,dblink如果很慢可以用这种方式优化
  13. 什么是Python?Python简介
  14. openCV绘制简单Sierpinski(分形)图形
  15. 签约沈腾、贾玲,苏宁拼购打造下沉市场“新引擎”
  16. 计算机职业素养200字,职业素养个人总结200字
  17. 敏捷软件开发(2)--- 设计原则
  18. FastRule: Efficient Flow Entry Updates for TCAM-based OpenFlow Switches(一)
  19. MOS管基本认识(快速入门)
  20. 20种常用的运放典型电路

热门文章

  1. 【图解数据结构与算法】数据结构与算法知识点整理 Data Structures and Algorithms
  2. 开源网络管理软件-RANCID【新任帮主】
  3. 虚拟电厂可视化大屏,深挖痛点精准减碳
  4. CSS学习笔记——搭建京东购物车网页
  5. 计算机病毒是一种特殊的计算机程序段,计算机病毒是一种特殊的计算机程序。(  )——青夏教育精英家教网——...
  6. 2015年上网行为管理技术发展趋势分析
  7. Google Earth Engine(GEE)——快速建立一个10km的格网
  8. 【Iriun Webcam】
  9. 应聘经历:网易笔试归来
  10. 《Linux命令行与shell脚本编程大全》第三章