Language:
Page Info
Skill Level:
Engine Version:
Share
此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

创建宏

本质上来说, 和节点的重叠图表原理相同。他们都有通道节点设计的进入点和离开点。每个通道可拥有任意数量的执行或数据引脚。在其他蓝图和图表上使用时,这些引脚在宏节点上均为可见。

创建宏

在本例中,我们将创建一个 ,用于检查确定玩家角色是否拥有足够能量执行跳跃。如能量足够,将扣除相应能量值,显示当前数值到屏幕上,然后允许玩家执行跳跃。如能量不足,屏幕上将显示玩家能量不足,无法跳跃。

在此实例中,我们使用的是启用了 新手内容Blueprint Third Person 项目

  1. Content/ThirdPersonBP/Blueprints 文件夹中,打开 ThirdPersonCharacter 蓝图。

  2. 我的蓝图 窗口中点击 Add Macro 按钮。

    MacroHT1.png

  3. 将创建一个新的宏,选中后按 F2 键将其重命名为 EnergyCheck

    MacroHT2.png

  4. 选中宏后,在 Details 面板中点击 New 按钮创建 1 输入和 2 输出。

    MacroHT3.png

    此操作将在宏节点上创建输入/输出节点,可用于向宏传输数据(或从宏传输数据)。

  5. 在文本框中为 输入 节点设置名称 BeginCheck,然后将类型改为 Exec(可执行引脚)。

  6. 将两个 输出 节点类型设为 Exec,并将一个命名为 HasEnergy,另一个命名为 NoEnergy

    MacroHT4.png

    在输入节点上,使用一个名为 BeginCheck 的执行引脚开始宏。将创建脚本,用以检查玩家是否拥有足够能量执行跳跃(如是,则将其与 HasEnergy 引脚连接起来)。如玩家无足够能量,则将其与 NoEnergy 引脚连接起来。执行宏时,HasEnergy 引脚将填充 Jump 指令,而 NoEnergy 引脚则不会。

  7. My Blueprint 窗口中点击 Add Variable 按钮。

    AddVariableButton.png

  8. 将变量命名为 Energy 并将其类型改为 Float,点击工具栏上的 Compile,将值设为 100

    MacroHT5.png

    现在便为玩家的能量(初始值为 100)设置了一个变量。

  9. Inputs 旁的图表中,按住 B 键并 单击左键 创建一个 Branch 节点。

  10. 按住 Ctrl 键从 My Blueprint 窗口将 Energy 拖入图表并连接到一个 > 节点,然后再连接到 Branch

    MacroHT6.png

    在此我们使用 Branch 确定是否能量大于零。如是,执行 True;如否,执行 False

  11. 按住 Alt 键拖入 Energy 变量添加一个 Set 节点。

  12. 在此按住 Ctrl 键拖入 Energy 并连接到一个 - 节点,将值设为 10,然后插入 Set 节点。

    MacroHT7.png

    该脚本意味着能量大于零时,将从当前能量值中减去 10。

  13. 在图表中 单击右键 添加一个 Print String 节点,然后将 EnergyIn String 引脚连接起来。

    MacroHT8.png

    将添加一个 转换 节点,它将把能量值转换为数值显示在屏幕上。

  14. 关闭 Branch 节点的 False 引脚,添加一个 Print String 并在框中输入文本 Out of Energy!

  15. 将两个 Print String 节点与 HasEnergyNoEnergy 引脚连接起来。

    MacroHT9.png

    现在宏的设置为检查 Energy 变量(如适用,则从该变量减去数值),确定玩家是否拥有足够能量,进而决定玩家是否可以执行跳跃。现在,我们需要在按下“跳跃”键后,跳跃动作被执行之前应用宏。

  16. 事件图表 上,拖动 InputAction Jump 节点的 Pressed 引脚并搜索 EnergyCheck

    MacroHT10.png

    可以看到创建的宏列于 Utilities 下,宏图标旁是它的名称。

  17. 宏被添加后,Jump 脚本的外观与下图相似。

    MacroHT11.png

  18. 点击 CompileSave 按钮,然后关闭蓝图。

  19. 在主工具栏中点击 Play 按钮即可在编辑器中进行游戏。

    按下 空格键 执行跳跃时,在屏幕左上角可看到 Energy 的值。当 Energy 为零时,无法执行跳跃。

    这是使用宏将脚本执行并合并为一个单独节点、改善事件图表和主要角色脚本易读性的基本范例。除此之外还可在其他情况下调用这个宏:存在其他消耗玩家能量的动作,需要确定玩家是否有能量执行此操作(如攻击)。按下攻击键,然后在 HasEnergy 执行引脚后执行攻击操作,再运行这个宏确认玩家是否有足够的能量执行攻击。