美文网首页
Unreal4蓝图 Map0042bate1

Unreal4蓝图 Map0042bate1

作者: 深呼吸10911 | 来源:发表于2021-06-10 22:38 被阅读0次

    蓝图 Map

    在蓝图中创建和编辑高级容器类 Map 容器,包括此容器的属性总览。


    虚幻引擎4中的蓝图应用程序编程接口(API)有一个 Map 容器类型。和 数组(Array) 以及 集合(Sets) 类似,蓝图Map在开发游戏时有各种用途。 如你不了解"容器",可将其想象为一个储物盒。你可将项目进行标记并放置在盒中以便立即(或之后)使用。如你已使用 Array 存储并使用项目集,则意味着其实你已经开始使用 UE4 中的蓝图容器。举例而言,使用 Array 存储项目以便之后使用的时候,项目的标签便是其在 Array 中的位置。 Map 和 Array 相似,两者均使用标签说明 项目在容器中的位置,然而 Map 的标签与 Array 的标签有所不同。使用 Array 时,标签是容器中项目的顺序索引;而使用 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.再次点击 + 按钮。
    如在更新新键值对的默认键之前尝试将键添加到到蓝图 Map,虚幻编辑器将发出警告。

    5.将 3 个键值对添加到 MyStringIntegerMap,使其与下图匹配:


    6.现在多添加一个键值对,将键命名为 Banana。


    如尝试将重复的键添加到蓝图 Map,虚幻编辑器将发出警告。虽然允许重复值,但不允许重复键。


    7.了解之前提及的警告,将第四个键命名为 Date,并将值设为 2。



    干得漂亮!你便已经新建了一个蓝图 Map,添加并编辑了四个键值对。

    容器属性

    如果想开始了解在 UE4 中使用蓝图 Map 容器,请参考以下属性列表。

    1.Map 中的键必须独一无二。
    2.Map 中的所有键必须被定义(设定初值)。
    3.当前蓝图 Map 中只支持单一键值对。
    4.使用 Map 中相关联的键添加、移除和寻找值运算速度极快。
    5.当前 Map 值为不可变,意味着它们创建后便不能进行修改。
    6.虽然不同值类的键类可能不同,但一个 Map 中所有键和值均为齐次(类型相同)。换言之,如果一个特定 7.Map 的键被指定为字符串类,其值被指定为整数类;那么随后所有的键均为字符串,随后所有的值均为整数。

    学习到如何在蓝图中创建和编辑 Map 容器后,即可查阅 蓝图 Map 节点 参考指南,了解蓝图 Map 节点接口的详细内容。

    相关文章

      网友评论

          本文标题:Unreal4蓝图 Map0042bate1

          本文链接:https://www.haomeiwen.com/subject/bkrpeltx.html