从虚幻引擎4.15版起,蓝图集合和地图都已添加到蓝图应用程序编程接口(API)中。尽管这些容器为开发人员提供了一些令人兴奋的机会,使他们能够创造性地存储和访问数据,但这些容器是为那些具备高级蓝图专业知识的用户而设计的。虽然理想的容器通常会是蓝图数组,但有时关联式容器(例如地图和集合)却可以帮助您使用游戏中的数据达成一些有趣和令人兴奋之事。
蓝图地图 蓝图 Map
在蓝图中创建和编辑高级容器类 Map 容器,包括此容器的属性总览。
通读此页后,你将了解到如何创建和编辑蓝图 Map。你还将了解到 Map 的属性,它们将助你在游戏项目中充分发挥 Map 的优势。
为便于说明,我们使用一个 空白项目(带下图中框中的设置)为你展示如何创建和编辑蓝图 Map。
创建 Map
根据以下步骤即可新建蓝图 Map。
1.如无可用蓝图类,需要为项目 添加 一个新的蓝图类。
2.然后从 Pick Parent Class 菜单中选中 Actor。
3.为 Actor 类命名后,在 Content Browser 中双击将新建的 Actor 类打开。
4.选择 Event Graph 标签,开始编辑 Actor 的蓝图脚本。
5.Actor 的 事件图表 打开后,将鼠标指针悬停在 Variables 子菜单上,显示 + Variable 按钮。
6.新建一个 字符串 变量,将其命名为 MyStringIntegerMap。
虽然变量的命名看似有些老学究,但重点是变量命名,尤其是 MyStringIntegerMap 可告知用户 Map 将拥有一个与整数类值关联的字符串类键。
7.当前 MyStringIntegerMap 是一个单一 字符串 变量。点击 Variable Type 按钮即可开始将 MyStringIntegerMap 装入 Map 容器。此按钮位于 Actor 的 Details 面板中 Variable Type 标签的右侧。
8.此时将出现一个下拉菜单,显示 4 个容器选项。选择以下选项将 MyStringIntegerMap 转为蓝图 Map:
检查 MyStringIntegerMap 的 变量类型,确认 Map 的键类型是 String,值类型为 Integer。
编辑 Map
编辑新建的 Map 之前,需要编译封装 Map 变量容器的蓝图。
1.点击蓝图的 Compile 按钮编辑 MyStringIntegerMap。
2.编译蓝图后,Map 的 Default Value(位于 Details 面板中)显示 MyStringIntegerMap 为空。
3.点击 + 按钮即可将新键值对添加到 MyStringIntegerMap,此按钮位于 Details 面板 Default Value 菜单中 0 Map elements 旁。
4.再次点击 + 按钮。
5.将 3 个键值对添加到 MyStringIntegerMap,使其与下图匹配:
6.现在多添加一个键值对,将键命名为 Banana。
7.了解之前提及的警告,将第四个键命名为 Date,并将值设为 2。 干得漂亮!你便已经新建了一个蓝图 Map,添加并编辑了四个键值对。
容器属性
如果想开始了解在 UE4 中使用蓝图 Map 容器,请参考以下属性列表。
1.Map 中的键必须独一无二。
2.Map 中的所有键必须被定义(设定初值)。
3.当前蓝图 Map 中只支持单一键值对。
4.使用 Map 中相关联的键添加、移除和寻找值运算速度极快。
5.当前 Map 值为不可变,意味着它们创建后便不能进行修改。
6.虽然不同值类的键类可能不同,但一个 Map 中所有键和值均为齐次(类型相同)。换言之,如果一个特定 Map 的键被指定为字符串类,其值被指定为整数类;那么随后所有的键均为字符串,随后所有的值均为整数。
学习到如何在蓝图中创建和编辑 Map 容器后,即可查阅 蓝图 Map 节点 参考指南,了解蓝图 Map 节点接口的详细内容。
网友评论