2.5 -子蓝图

blueprint_advanced_2_5.png

概述

我们可以基于父 Blueprint (蓝图)来创建子 Blueprint (蓝图),这类似于您对主要材质创建材质实例的方法。子蓝图会自动继承其父蓝图的功能,随后它们可被增加,添加到某处,或变更。本例中,三个可收集的拾取物品 Blueprint (蓝图)均为通用拾取物品 Blueprint (蓝图) 的子蓝图。

Blueprint (蓝图)为 BP_Pickup_Parent_C ,而三个子 Blueprint (蓝图)分别为:

父蓝图的事件图表

点击以查看完整尺寸图片或 右键点击 并另存。

父蓝图, BP_Pickup_Parent, 是包含了基本拾取行为的脚本,例如使得拾取物品旋转并漂浮的时间轴动画,以及收集拾取物品的序列。子蓝图继承此脚本的所有内容,但对收集拾取物品的时间设置了额外的脚本,这样基本功能与父蓝图相同,但每次拾取都会有所不同。这样非常有用,因为对父蓝图脚本的任何更新也会被应用到其所有的子蓝图上。

当玩家控制的Pawn与 Pickup Trigger (拾取物品触发器)SphereComponent 重叠时, OnPickedUp 事件调度器 被调用。每个子 Blueprint (蓝图)都会绑定一个不同的事件到 OnPickedUp ,这样在玩家收集每个拾取物品以及在 OnPickedUp 被调用时,都会输出一个不同的字符串。

子蓝图的事件图表

点击以查看完整尺寸图片或 右键点击 并另存。

作为一种规则,蓝图图表不能包含同一事件的副本,这样如父脚本与子脚本都包含 ReceiveBeginPlay 事件,仅会执行父脚本的事件。您可以在子脚本中 右键点击 一个事件并选择 Add call to parent function (添加调用到父函数)来避免这个问题。这样在其被调用时,在父脚本中会创建一个触发相关事件的函数。