创建宏

创建一个宏用来检查玩家是否有足够能量来跳跃。

本页面的内容

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

创建宏

在本教程中,你将创建一个 宏(Macro),用于检查角色是否有足够能量来进行跳跃。如果角色确实有足够能量,该宏将消耗玩家的能量,将当前值显示在屏幕上,然后调用跳跃函数。如果角色没有足够的能量,该宏将在屏幕上显示"能量不足",并禁止角色跳跃。

在此示例中,我们使用的是启用了 初学者内容包(Starter Content)

[蓝图第三人称项目](understanding-the-basics\projects-templates\third-person-template)

  1. 创建启动 你的项目后,找到 Content/ThirdPerson/Blueprints 文件夹,并打开 BP_ThirdPersonCharacter 蓝图。

    BP_ThirdPersonCharacter.png

1.找到 我的蓝图(My Blueprint) 窗口,然后点击 添加宏(Add Macro) 按钮。

![](MacrosAdd.png)
  1. 将创建新的宏,选中后按 F2 键将其重命名为 EnergyCheck

    EnergyCheck.png

  2. 选择宏之后,找到 细节(Details) > 输入(Inputs) ,点击 添加(Add(+)) ,创建名为 BeginCheck 的新 输入(Input) ,然后将其类型更改为 执行(Exec)** (执行引脚)

    BeginCheck.png

  3. 找到 细节(Details)> 输出(Outputs) ,然后点击 添加(Add(+)) ,创建两个新的输出。将其中一个命名为 HasEnergy ,另一个命名为 NoEnergy ,然后设置 执行(Exec) 引脚类型。

    HasEnergy.png

    这将在宏节点本身上创建输入/输出节点,用于与宏之间传递数据。

    对于输入,使用名为 BeginCheck 的执行引脚来启动宏。接下来,创建一个脚本,用于检查玩家是否拥有足够的能量执行跳跃,如有,则执行 HasEnergy 引脚。如果玩家没有足够的能量,则执行 NoEnergy 引脚。

  4. 我的蓝图(My Blueprint) 窗口中,点击 添加变量(Add Variable) 按钮,创建名为 Energy 的新浮点变量。

    EnergyFloat.png

  5. 在工具栏上,点击 编译(Compile) ,然后选择 能量(Energy) 并找到 细节(Details) 面板,将其值设置为 100

    CompileSave.png

  6. 能量(Energy) 图表中,按住 B 键并 单击左键 以创建 Branch 节点。

    Copy Node Graph

    Branch.png

  7. 按住 Ctrl 键并将 Energy 浮点变量从 我的蓝图(My Blueprint) 选项卡拖移至宏图表中,点击并拖出输出引脚以搜索 Greater 运算符节点,然后将输出引脚连接到 Branch

    Copy Node Graph

    GreaterOperator.png .png)

    在图中,我们使用了Branch来确定Energy是否大于0,如是,则执行 True ,否则执行 False

  8. 按住 Alt 键并拖入 Energy 变量以添加 Set 节点。

    Copy Node Graph

    SetEnergy.png

  9. 再次按住 Ctrl 键并拖入 Energy ,将其连接到 Subtact (-) 节点,设置为 10 ,将其连接到 Set 节点。

    Copy Node Graph

    SubtractNode.png

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

  10. 在图表中 单击右键 添加 Print String 节点,然后将 Set Energy 节点连接到 在字符串中(In String) 引脚。

    Copy Node Graph

    PrintString.png

    添加了 Conversion 节点,它会将能量值转换为数值字符串显示在屏幕上。

  11. 拖出 BranchFalse 引脚,添加另一个 Print String 节点,并在框中输入文本 "能量不足!" 。然后将第一个和第二个 Print String 节点相应连接到 HasEnergyNoEnergy 引脚。

    Copy Node Graph

    OutOfEnergy.png

    该宏现在设置为检查 Energy 变量(如适用,则从中减去数值),显示玩家是否拥有足够的能量,进而确定玩家是否可以跳跃。现在,你需要在按"跳跃(Jump)"键之后,但在执行跳跃动作之前实现宏。

  12. 事件图表(EventGraph) 上,拖出 InputAction Jump 节点的 Pressed 引脚,并搜索 EnergyCheck

    InputJumpEnergyCheck.png 可以看到创建的宏列于 工具(Utilities) 下,宏图标旁是它的名称。

  13. 添加宏之后,跳跃脚本的外观与下图相似。

    Copy Node Graph

    EnergyCheckMacro.png

  14. 点击 编译(Compile)保存(Save) 按钮,然后关闭蓝图。

    CompileSave.png

  15. 点击 编辑器(Editor) 中的主 工具栏(Toolbar) 上的 播放(Play)

    PIE.png

空格键 执行跳跃时,屏幕左上角将显示 能量(Energy) 值。Energy 为0时,无法执行跳跃。

最终结果

EndResult.gif

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

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消