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

3 - 执行蓝图 Set 的交集

现在您有了一个 TextRender Actor,显示上一步中定义的蓝图 Set 的内容。在此步中,您将了解如何执行两个蓝图 Set 的 交集,最终在游戏的 视口 中显示交集的结果。

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

    点击查看全图。

  2. 您应该可以看到 Display Set TextRender Actor 蓝图 事件图表,您可在此处用现有的 Instruction Set 将一个新蓝图 Set 添加到 Intersect,最终将结果 Set 显示到 视口

    点击查看全图。

  3. 此时,您需要为即将进行的交集创建一些蓝图 Set 容器。右键单击 Instruction Set 变量并从下拉菜单中选择 Duplicate 创建两个新的蓝图 Set 变量,将它们命名为 Shorter Instruction SetResultant Instruction Set

    Step3_3.png

    在两个 Set 上(通常而言)执行一次交集将生成一个结果 Set,其中只包括两个 Set 中共有的项目。

  4. 您现在便拥有了两个新蓝图 Set 变量,从复制现有的 Instruction Set 变量而来。您应该注意到,如果选择其中一个新蓝图 Set(如 Resultant Instruction Set),将出现提示 Please compile the blueprintDefault Value 消息。

    点击查看全图。

  5. 点击 Compile 按钮。

    点击查看全图。

  6. 编译蓝图后,Default Value 消息将消失,为现有的元素腾出显示空间。您对现有 Instruction Set 变量进行复制来创建两个新变量,因此也将原始蓝图 Set 中包含的元素复制到了新建的容器中。

    Step3_6.png

    请注意,无需复制现有变量即可创建新变量。

  7. 点击 Default Value 菜单中的 Removes all items 按钮即可清除 结果 Instruction Set

    点击查看全图。

  8. 现在从 Shorter Instruction Set 中清除项目(或元素)。

    点击查看全图。

  9. 在为现有蓝图事件图表添加新逻辑之前,需要将 Shorter Instruction SetInstruction Set 变量拖入蓝图。

    点击查看全图。

编写逻辑脚本

  1. Shorter Instruction Set 节点连出引线,从 Set Utilities 接口添加 Intersection 节点,即可开始构建新逻辑。

    点击查看全图。

  2. 现在将 Instruction Set 节点连接到 Intersection 节点。

    点击查看全图。

  3. 右键点击蓝图图表打开 快捷菜单,然后搜索并添加 Event ActorBeginOverlap

    点击查看全图。

  4. Event ActorBeginOverlap 节点的 Other Actor 引脚连出引线,然后搜索并添加 Cast To FirstPersonProjectile 节点。

    点击查看全图。

  5. 现在将 Cast To FirstPersonProjectile 节点连接到 Intersection 节点。

    点击查看全图。

    基本上这意味着如果第一人称发射物和此 Actor 的碰撞方块成功发生碰撞,将调用 Intersection 节点。

  6. Intersection 节点在 Shorter Instruction SetInstruction Set 上执行运算后,需要将结果保存在 Resultant Instruction Set 容器中。从 Intersection 节点连出引线并添加 Set Resultant Instruction Set 即可完成此操作。

    点击查看全图。

  7. Set Resultant Instruction Set 节点连出引线,然后从 Set Utilities 接口添加 To Array 节点。

    点击查看全图。

  8. To Array 连出引线并添加 ForEachLoop 节点即可迭代通过 Array 的元素。

    点击查看全图。

  9. ForEachLoop 节点连接 To Array 节点。

    点击查看全图。

  10. 现在即可将交集结果显示到 视口。从 ForEachLoop 节点的 Array Element 引脚连出引线,搜索并添加 Print String 节点即可完成此操作。

    点击查看全图。

  11. ForEachLoop 节点连接到 Print String 节点。

    点击查看全图。

  12. 此时您便可以决定 Resultant Instruction Set 中将要包含的内容。就此例而言,您需要让 Resultant Instruction Set 变量只包含 ClickLeftMouseButton。首先需要做的是在纸上进行交集运算:

    Instruction Set

    Shorter Instruction Set

    Resultant Instruction Set (A ∩ B)

    Click

    Click

    Click

    the

    Left

    Left

    Left

    Mouse

    Mouse

    Mouse

    Button

    Button

    Button

    and

    Fire

    从刚执行的纸上研究中可以得出,Instruction SetShorter Instruction Set 共有的项目保存在 Resultant Set 容器中。在 Set 上进行逻辑运算时,最好在纸上(或白板上)执行运算,然后将逻辑脚本写入蓝图图表。

  13. 明确要存入 Shorter Instruction Set 容器的项目后,选择 Shorter Instruction Set 检查容器的内容。

    点击查看全图。

    如框中图像所示,Shorter Instruction Set 当前为空。如此时要执行 Shorter Instruction SetInstruction Set 的交集,Resultant Instruction Set 容器将为空。

  14. 用以下元素填充 Shorter Instruction Set 容器:

    Step3_22.png

  15. 检查完成的脚本后,点击 Compile 按钮。

    点击查看全图。

  16. 最后点击 Save 按钮,然后返回编辑器的 视口 界面。

    点击查看全图。

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

    点击查看全图。

最终结果

从视频中可看到,第一人称发射物和 Display Set 碰撞方块发生碰撞后,Resultant Instruction Set 的内容将显示到 视口 中。查看显示的项目时,您将注意到 Resultant Instruction Set 中包含的项目未按预定顺序排序,这便是蓝图 Set 的一个属性。阅读下一个步骤,了解如何执行两个蓝图 Set 的 合并

Tags