使用宏库
宏库 是一个容器,存放大量宏或自含式图表(可作为节点放置到其他蓝图中)。它们保存常用节点顺序(包括执行和数据传输的输入和输出),因此可有效节约时间。
创建宏库
此例中我们创建由两个宏组成的宏库,一个用于添加“体力值”变量,两一个用于调整指定 Actor 的大小。
此例中我们使用的是启用 新手内容 的 Blueprint Third Person 项目。
在 内容浏览器 的空白处 单击右键,然后在 Blueprints 的快捷菜单中选择 Blueprint Macro Library 。
在出现的 Pick Parent Class 窗口中选择 父类 (此例中选择 Actor)。
为宏库命名,然后 双击 打开。
将显示 蓝图宏 界面。
在右上角的 MyBlueprint 窗口中,将默认宏上按下 F2 将其重命名为 ScaleUp。
在 ScaleUp 宏的 Details 面板中按下图添加 Inputs 和 Outputs。
上图中创建了两个输入:一个名为 In,设为 Exec 类型;另一个名为 InActor,设为 Actor 类型。添加的输出名为 Out,设为 Exec 类型。我们将使用它们来决定需要通过此宏进行影响的 Actor。
在 ScaleUp 宏的图表中,按下图重建节点网络。
在上图中,此宏被调用时,它将获取 Actor 作为 InActor 提供的内容;并获取其当前大小,在将其设为 目标(即为指定为 InActor 的 Actor)的新大小 3D 之前乘以 1.25。我们现在即可结合任意 Actor 使用此宏,并使用此宏调整 Actor 的大小。
从 MyBlueprint 窗口添加另一个名为 AddHealth 的宏。
在 AddHealth 宏的 Details 面板中按下图添加 Inputs 和 Outputs。
上图中我们使用一个名为 GetHealth 的浮点值,通过 SetHealth 输出节点进行传递之前将把此值添加到该节点。
在 AddHealth 宏的图表中,按下图重建节点网络。
上图中,在输出结果值到 SetHealth 之前,为作为 GetHealth 值的浮点值增加 50。
保存 并关闭蓝图宏库。
在 Content/ThirdPersonBP/Blueprints 文件夹中,打开 ThirdPersonCharacter 蓝图。
在 MyBlueprint 窗口中添加一个代表 Health 的 浮点 变量(将默认值设为 0)。
在事件图表中,按下图重建节点网络。
上图中,按下 Q 键后将调用 AddHealth 宏,它将抓取 Health 变量(执行增加的宏脚本)并通过输出引脚 SetHealth 进行更新,然后再显示到屏幕上。我们先使用 E 按键事件检查 Health 是否大于 100,然后允许 ScaleUp 宏在 Actor Self(即为 ThirdPersonCharacter.)上调用。
编译 并点击 Play 在编辑器中开始游戏。
全屏观看视频可更清楚地查看屏幕中显示的文本。
以上视频包含了步骤 13 中的蓝图脚本,因此脚本发射时可以看到。按下 E 键尝试调用 ScaleUp 宏时,首先检查默认设为 0 的 Health 值。之后按下 Q 调用 AddHealth 宏,在每次按键时为 Health 变量增加 50。数次按键后,再次尝试调用 ScaleUp 宏便会成功,因为增加后 Health 已经大于 100。
这些宏可从提供 Health 输入的其他蓝图和提供的目标 Actor 进行调用。