在虚幻引擎5(UE5)的蓝图中,Map(映射) 是一种键-值(Key-Value)对的数据容器,适合用于需要通过唯一键(Key)快速查找对应值(Value)的场景。下面将为你详细拆解 Make Map、Add to Map 和 Find in Map 这三个核心节点的具体用法与操作步骤。
1. Make Map:创建映射
Make Map 节点用于在蓝图的事件图表中,通过一系列键值对直接创建一个新的临时 Map。
-
输入 (Inputs):该节点默认提供一对
Key 0和Value 0引脚。 -
输出 (Outputs):输出一个创建好的
Map。 -
具体操作步骤:
-
在蓝图的事件图表中右键,搜索并添加
Make Map节点。 -
点击节点上的 “添加引脚” (Add Pin) 加号按钮,可以按需增加多组键值对。
-
将你需要的数据连接到对应的
Key和Value引脚上。 -
最后,将节点输出的
Map传递给其他需要这个临时映射的节点使用。
-
2. Add to Map:添加或更新元素
Add to Map 节点用于向一个已存在的 Map 中添加新的键值对,或者更新一个已存在键的值。如果添加的键(Key)在 Map 中已存在,其对应的值(Value)将被覆盖。
-
输入 (Inputs):
-
Target Map:目标 Map 对象。 -
Key:要添加或更新的键。 -
Value:与该键对应的值。
-
-
输出 (Outputs):无返回值,直接修改输入的
Target Map。 -
具体操作步骤:
-
在事件图表中右键,搜索并添加
Add to Map节点。 -
将你的 Map 变量连接到节点的
Target Map引脚。 -
将键(Key)和值(Value)连接到对应的输入引脚。
-
该节点的执行线(白色箭头)被触发后,操作即生效。
-
3. Find in Map:查找元素
Find in Map 节点用于根据给定的键(Key),在 Map 中查找并返回其对应的值(Value)。
-
输入 (Inputs):
-
Target Map:目标 Map 对象。 -
Key:要查找的键。
-
-
输出 (Outputs):
-
Value:找到的值。注意:此节点返回的是值的副本(Copy),而非引用。这意味着如果修改这个返回值,不会影响 Map 中的原始数据。 -
Return Value:一个布尔值(Boolean),True表示找到了该键,False表示未找到。
-
-
具体操作步骤:
-
在事件图表中右键,搜索并添加
Find in Map节点。 -
将你的 Map 变量连接到节点的
Target Map引脚。 -
将要查找的键(Key)连接到
Key输入引脚。 -
节点执行后,可以通过
Return Value引脚判断查找是否成功,并从Value引脚获取查找到的值。
-
完整使用案例:玩家物品背包系统
下面通过一个“玩家物品背包”的案例,展示如何组合使用这三个节点。
场景设定:我们需要一个系统,能用物品ID(整数)快速查找对应的物品数量(整数)。
步骤 1:创建 Map 变量
-
在蓝图(如玩家角色蓝图或游戏实例蓝图)的变量(Variables) 面板中,点击 “+” 新建变量,命名为
InventoryMap。 -
在右侧的细节(Details) 面板中,将变量类型(Variable Type) 设置为 Map。
-
设置 Key 类型 为
Integer(整数,代表物品ID),Value 类型 也设置为Integer(整数,代表物品数量)。
步骤 2:初始化背包(使用 Make Map)
-
在事件图表中,找到
Event BeginPlay节点。 -
从
Event BeginPlay的执行引脚拖出一条线,添加Make Map节点。 -
点击
Make Map节点上的 “添加引脚”,添加两组键值对,例如:-
Key 0:
1, Value 0:10(代表ID为1的物品有10个) -
Key 1:
2, Value 1:5(代表ID为2的物品有5个)
-
-
将
Make Map节点输出的 Map,连接到Set [InventoryMap]节点,将生成的临时 Map 赋值给我们的背包变量。
步骤 3:添加或更新物品(使用 Add to Map)
-
当玩家拾取物品时(例如,在一个拾取事件中),添加
Add to Map节点。 -
将
InventoryMap变量连接到Add to Map节点的Target Map引脚。 -
将拾取到的物品ID连接到
Key引脚,将数量连接到Value引脚。 -
此操作会自动处理:如果该物品ID不存在,则添加新条目;如果已存在,则更新其数量。
步骤 4:查找物品数量(使用 Find in Map)
-
当需要查询某个物品的数量时(例如,在UI显示或检查任务物品时),添加
Find in Map节点。 -
将
InventoryMap变量连接到Target Map引脚。 -
将要查询的物品ID连接到
Key引脚。 -
从
Find in Map节点的Return Value引脚拖出一条线,添加一个Branch(分支)节点来判断查找是否成功。 -
如果
Branch为 True,则从Find in Map节点的Value引脚获取到的就是该物品的数量;如果为 False,则表示背包中没有该物品。
总结
-
Make Map:用于一次性创建一个包含初始数据的 Map。 -
Add to Map:用于添加新元素或更新现有元素,是修改 Map 内容的主要方式。 -
Find in Map:用于查找元素,返回值的副本和一个指示是否成功的布尔值。
掌握这三个节点,你就能在UE5蓝图中灵活地运用 Map 数据结构来管理各种键值对数据了。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容