直接蓝图通信

本页面讲述使用 直接蓝图通信 在两个蓝图之间进行通信和信息传递。

在此例中,玩家将通过箱子传递信息,启用一个粒子特效(并与其形成通信)。

此指南使用启用 新手内容Blueprint Third Person 模板。

  1. Content Browser 中打开 Content/StarterContent/Shapes 文件夹。

  2. 右键单击 Shape_Cube,然后在 Asset Actions 下选择 Create Blueprint Using This...

    DirectCom1.png

    在创建蓝图的确认框上点击 Ok

  3. 在 Shape_Cube 蓝图中,选择 Components 窗口左上角的 Static Mesh

  4. Details 面板中,将 Collision Presets 改为 OverlapOnlyPawn

    DirectCom2.png

    此设置可确保只有 Pawns 和扩展而来的 角色 才可通过方块。

  5. MyBlueprint 窗口中,点击 Add Variable 按钮,将变量命名为 TargetBlueprint

    DirectCom3.png

    这便是需要直接进行通信的另一个蓝图

  6. 在此变量的 Details 面板中,将 Variable Type 设为 Blueprint_Effect_Fire,并勾选 Editable

    DirectCom4.png

    我们在此对需要进行通信的蓝图进行设置,并将变量设为可公开编辑(在蓝图外进行编辑)。

  7. My Blueprint 窗口中选择 Static Mesh,然后在 Details 面板中添加一个 On Component Begin Overlap 事件。

    DirectCom8.png

    此操作将添加一个节点并打开 事件图表,在此可提供进入方块时发生的脚本。

  8. Target Blueprint 的引出连线连接 Get P FireGet Fire Audio,然后再连接到 Activate 节点(如下图所示)。

    DirectCom10.png

    我们在目标蓝图中访问粒子效果和音频组件,并将它们启用。

  9. Content BrowserBlueprints 中,将 Shape_Cube 蓝图拖入关卡。

    DirectCom5.png

  10. 打开 内容浏览器Content/StarterContent/Blueprints 文件夹下的 Blueprint_Effect_Fire 蓝图

  11. Components 窗口中选择 P_Fire,然后在 Details 面板中取消勾选 Auto Activate

    DirectCom6.png

    我们不需要此特效自动开启。进入关卡中的方块后才会对其发出开启指令。

  12. Blueprint_Effect_Fire 蓝图拖入关卡。

  13. Details 面板中选择 Shape_Cube 蓝图,使用下拉菜单选择 Blueprint_Effect_Fire 蓝图。

    DirectCom7.png

    此操作将在关卡中指定需要进行通信的 Blueprint_Effect_Fire 蓝图实例。如关卡中放置有数个 Blueprint_Effect_Fire 蓝图实例,每个实例都将显示在下拉菜单中,以便确定哪个实例是 Target Bluperint 进行通信的对象。

    点击 滴管 图标即可选择关卡中的 Target Bluperint 实例,无需使用下拉菜单。注意:只能基于指定的变量类型选择目标蓝图

  14. 点击 Play 按钮即可在编辑器中测试角色穿过方块。

角色进入方块后,关卡中将出现火焰特效。使用 直接蓝图通信 不仅可以从一个蓝图中变更另一个蓝图的属性,还可传递变量值、调用函数或事件、或执行蓝图通常可进行的其他操作。