跳转到主要内容

UE4的结构体及结构体数组

demi 提交于

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>一、结构体的基本概念</strong></font>

可以使用Struct 封装多种相同或不同类型的数据,并使用数组保存结构体,通过遍历数组中的结构体,来访问结构体数据并统计。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>二、自定义结构体</strong></font>

1. 在蓝图文件夹中创建一个结构体文件MyStruct (内容浏览器 -> 蓝图文件夹 -> 创建蓝图选项 -> 结构体)

2. 双击打开结构体文件

3. 修改原有布尔变量名称为MyBool

4. 添加浮点型变量Health

5. 添加字符串变量Name

6. 添加字节变量Sex

7. 可以调整结构体变量的关系,也可以删除结构体变量

8. 可以设置结构体变量的默认值

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>三、BreakStruce 访问结构体</strong></font>

1. 在关卡蓝图中创建结构体变量PawnInfo,选择MyStruct类型

2. 保存后拖动结构体到关卡蓝图

3. 选择结构体连线出Break MyStruct (中断MyStruct),可以随意访问结构体中的变量

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>四、SetMembersInStruct 设置结构体的值</strong></font>

1. 拖动结构体MyStruct到关卡蓝图

2. MyStruct拖出设置MyStruct中的成员节点,节点中的变量可以通过 细节 选项卡显示

3. 添加事件设置成员节点

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>五、MakeStruct 替换结构体</strong></font>

1. 拖动设置结构体MyStruct的节点到关卡蓝图

2. 设置 PawnInfo 端为 Make MyStruct节点,并设置数据

3. 添加事件触发设置节点

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>六、创建结构体数组</strong></font>

1. 将结构体修改成数组,尽量不要有其他的引用

2. 在MyStruct中修改结构体的默认值,保存编译之后,所有蓝图中的数组默认值都会改变

3. 建筑漫游可以用结构体数组

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>七、结构体数组的访问</strong></font>

1. 在结构体数组上连接 Get 节点,选择索引就可以得到一个结构体元素

2. 将结构体元素 中断(break) ,获得所有结构体成员节点,就可以访问任意的结构体成员

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>八、结构体数组的遍历</strong></font>

1. 通过 ForEachLoop 或 ForEachLoopWithBreak 遍历结构体数组

2. 每一个元素都可以通过中断来获取结构体成员节点

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>九、Add 和 SetArrayElem</strong></font>

1. 通过add或add unique 节点添加元素,add unique节点验证所有成员数据是否全部一致

2. SetArrayElem 替换原有数组中的元素,若SizetoFit为true,则超出范围后会将数组补充至满足替换条件的大小

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>十、AppendArray</strong></font>

1. AppendArray 可以连接两个数组

2. 将B连接到A中,A增加B,B不变

3. 不能将A连接到A中,会死循环

<font color="#9a9a9a">版权声明:本文为CSDN博主「幽冥丶虾米」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。</font>
<a href="https://blog.csdn.net/qq_14930205/article/details/78541532"><font color="#9a9a9a">原文链接:https://blog.csdn.net/qq_14930205/article/details/78541532</font></a&gt;