Language:
Page Info
Tags:
Skill Level:
Engine Version:
Share

2 - 创建并显示蓝图 Map

在新创建的项目中设置 TextRender actor 后,即可创建蓝图 Map 容器,并在游戏中显示其中的内容。

  1. 在项目的 Content Browser 中,双击 Display Set TextRender Actor 打开其蓝图 事件图表

    点击查看全图。

  2. 看到以下画面后,即可点击 Open Full Blueprint Editor 链接开始。

    点击查看全图。

  3. 之后便能够看到 Display Set TextRender Actor 蓝图 事件图表,您可在此处添加蓝图 Map 和它的显示逻辑。

    点击查看全图。

    如之前提及的画面未出现,则点击 Event Graph 标签打开 Actor 的蓝图事件图表编辑器。

    点击查看全图。

  4. 现在便开始创建一个蓝图 Map 容器,可在此容器中存储一些键值对以便之后显示。点击 + Add New 按钮(My Blueprint 面板中)并在下拉列表中选择 Variable,即可新建一个蓝图 Map。

    Step2_4.png

  5. 将新变量命名为 Instruction Map

    Step2_5.png

  6. 点击变量名旁的 pin type 按钮。

    Step2_6.png

  7. 从下拉列表中选择 Integer 变量类。

    Step2_7.png

  8. 点击 Details 面板中 Variable Type 下拉列表旁的 container type 按钮。

    Step2_8.png

  9. 从下拉列表中选择 Map 容器类。

    Step2_9.png

  10. 现在可以定义 Map 的键值属性类。当前键是一个 Integer 类,这便是所需的属性类。然而值类并非 String 变量类。点击值属性类下拉列表,将值从 Integer 变为 String

    Step2_10.png

  11. 从下拉列表中选择 String

    Step2_11.png

  12. 此时,您便拥有了一个(分别为)IntegerString 类型的键值对。此外,蓝图图表将提醒您对蓝图进行编译,以便定义将要存储在容器内的项目。点击 Compile 按钮开始。

    点击查看全图。

    编译蓝图将用一个界面替代容器的 Default Value 消息,使您能够用键值对填充容器。而在此容器中 Map 的键为 Integer,值为 String。

  13. 如尚未保存,点击 Save 保存迄今为止已完成的工作。

    点击查看全图。

    一句话形容,尽量早保存,尽量多保存。

  14. 点击 +(添加元素)按钮(在 Details 面板中的 Default Value 菜单中)将一个新的键值对添加到新定义的 Instruction Map 容器中。

    点击查看全图。

  15. 定义容器的新键值对,将键定义为 1,再将值定义为 WASD to run

    Step2_15.png

  16. 重复之前两个步骤,用以下键值对填满 Instruction Map 容器:

    Step2_16.png

编写逻辑脚本

显示新创建蓝图 Map 的内容之前,需要编写必要的逻辑。

  1. 对容器进行定义后,将 Instruction Map 变量拖入蓝图事件图表。

    点击查看全图。

  2. Instruction Map 下拉菜单选择 Get

    点击查看全图。

  3. Instruction Map 节点连出引线,然后从 Map Utilities 接口添加 Find 节点。

    点击查看全图。

    从 Map 中获取值的方法有几种。在教程的这部分中,我们将增加一个整数键,用以显示 Instruction Map 中包含的关联值。

  4. 牢记上文提及的注意事项,点击 + Add New 按钮,从下拉列表中选择 Variable

    Step2_20.png

  5. 将变量类型设为一个 Integer 类,将其命名为 Key

    Step2_21.png

  6. 声明并定义新的 Integer 变量后,将 Key 拖入蓝图事件图表,从下拉菜单中选择 Get

    点击查看全图。

  7. Key 节点连出引线,搜索并添加 IncrementInt 节点。

    点击查看全图。

  8. 现在将 IncrementInt 节点和 Find 节点连接起来。

    点击查看全图。

    为便于此教程的展示,我们将使用一个时间函数来增加 Key 变量。

  9. Event Tick 节点连出引线,搜索并添加 Delay 节点。

    点击查看全图。

  10. 将延迟时长设为 2 秒后,将 Delay 节点连接至 IncrementInt 节点。

    点击查看全图。

  11. Event BeginPlay 节点连出引线,搜索并连接到 Branch 节点。

    点击查看全图。

  12. IncrementInt 节点连接到 Branch 节点。

    点击查看全图。

  13. 现在将属于 Find 节点的 Boolean 返回值连接到 Branch 节点的 Condition 引脚。

    点击查看全图。

    如果 Find 节点成功找到 Map 中的项目,节点将返回 true。反之,如果 Find 节点返回 false,则说明 Map 中没有项目使用提供的键。

  14. Branch 节点的 True 引脚连出引线,搜索并连接到 Set Text(TextRender) 节点。

    点击查看全图。

    逻辑的这个分支代表如果容器中存在有效键值对,则会直接显示容器的关联值。

  15. Find 节点的返回 Value 引脚连接到 Set Text 节点的 Value 引脚,即可在游戏中显示容器的值。

    点击查看全图。

  16. 现在从 Branch 节点的 False 引脚连出引线,搜索并连接 Set Text(TextRender) 节点。

    点击查看全图。

    逻辑的这个分支代表如果容器中不存在有效键值对,则会直接显示其他内容。

  17. Branch 节点的 Value 引脚连出引线,搜索并连接到 ToText(string) 节点。

    点击查看全图。

  18. 现在定义字符串读出:Now, shoot the blocks!

    点击查看全图。

  19. 检查完成的脚本后,点击 Compile 按钮,然后返回编辑器的 视口 界面。

    点击查看全图。

  20. 在编辑器的 视口 界面中,点击 Play 按钮查看工作状态下的新实现脚本。

    点击查看全图。

最终结果

迄今为止,您已定义了一个新蓝图 Map,用键值对填充了容器,并用在 TextRender Actor 的蓝图事件图表中创建的一些基础逻辑完成了数值显示。如果您希望了解如何执行稍微高级一些的操作,请移步下一部分。您将学习到如何将键值对 添加 到 Map,进而显示 Map 的值。

Tags