直接蓝图通信
本页面讲述使用 直接蓝图通信 在两个蓝图之间进行通信和信息传递。
在此例中,玩家将通过箱子传递信息,启用一个粒子特效(并与其形成通信)。
此指南使用启用 新手内容 的 Blueprint Third Person 模板。
在 Content Browser 中打开 Content/StarterContent/Shapes 文件夹。
右键单击 Shape_Cube,然后在 Asset Actions 下选择 Create Blueprint Using This...
在创建蓝图的确认框上点击 Ok。
在 Shape_Cube 蓝图中,选择 Components 窗口左上角的 Static Mesh。
在 Details 面板中,将 Collision Presets 改为 OverlapOnlyPawn。
此设置可确保只有 Pawns 和扩展而来的 角色 才可通过方块。
在 MyBlueprint 窗口中,点击 Add Variable 按钮,将变量命名为 TargetBlueprint。
这便是需要直接进行通信的另一个蓝图。
在此变量的 Details 面板中,将 Variable Type 设为 Blueprint_Effect_Fire,并勾选 Editable。
我们在此对需要进行通信的蓝图进行设置,并将变量设为可公开编辑(在蓝图外进行编辑)。
在 My Blueprint 窗口中选择 Static Mesh,然后在 Details 面板中添加一个 On Component Begin Overlap 事件。
此操作将添加一个节点并打开 事件图表,在此可提供进入方块时发生的脚本。
将 Target Blueprint 的引出连线连接 Get P Fire 和 Get Fire Audio,然后再连接到 Activate 节点(如下图所示)。
我们在目标蓝图中访问粒子效果和音频组件,并将它们启用。
在 Content Browser 的 Blueprints 中,将 Shape_Cube 蓝图拖入关卡。
打开 内容浏览器 中 Content/StarterContent/Blueprints 文件夹下的 Blueprint_Effect_Fire 蓝图。
在 Components 窗口中选择 P_Fire,然后在 Details 面板中取消勾选 Auto Activate。
我们不需要此特效自动开启。进入关卡中的方块后才会对其发出开启指令。
将 Blueprint_Effect_Fire 蓝图拖入关卡。
在 Details 面板中选择 Shape_Cube 蓝图,使用下拉菜单选择 Blueprint_Effect_Fire 蓝图。
此操作将在关卡中指定需要进行通信的 Blueprint_Effect_Fire 蓝图实例。如关卡中放置有数个 Blueprint_Effect_Fire 蓝图实例,每个实例都将显示在下拉菜单中,以便确定哪个实例是 Target Bluperint 进行通信的对象。
点击 滴管 图标即可选择关卡中的 Target Bluperint 实例,无需使用下拉菜单。注意:只能基于指定的变量类型选择目标蓝图。
点击 Play 按钮即可在编辑器中测试角色穿过方块。
角色进入方块后,关卡中将出现火焰特效。使用 直接蓝图通信 不仅可以从一个蓝图中变更另一个蓝图的属性,还可传递变量值、调用函数或事件、或执行蓝图通常可进行的其他操作。