仅使用蓝图

蓝图类 允许您使用蓝图 - 可视化脚本 系统来设置新类。 在您 创建一个新的蓝图类 后, 您可以使用可视化脚本系统来添加组件、创建函数及其他游戏或设计行为,并设置类变量的默认值。 仅使用蓝图创建的LightSwitch类的名称是 LightSwitch_BPOnly ,以下进行了解释。

类设置

LightSwitch_BPOnly 类是在 Content Browser(内容浏览器)创建的 ,使用选中的 Actor 作为父类。

组件可以通过 Blueprint Editor(蓝图编辑器)组件模式 静态地添加到蓝图中,或者在图表模式 中通过可视化脚本动态地将组件添加到蓝图中。 因为LightSwitch类总是具有PointLightComponent 和 the SphereComponent,所以在这个示例中,是通过在组件窗口 中静态地添加的组件。

使用 Components(组件) 选卡添加PointLightComponent,命名为 PointLight1 ,将其作为根组件;添加SphereComponent,命名为 Sphere1 ,并将其附加到 PointLightComponent 上。 在 蓝图编辑器 中添加到类上的组件具有淡蓝色图标,而从父类继承而来的组件具有深蓝色图标。 关于使用 Components(组件) 选卡添加及排列组件的更多信息,请参照 组件 选卡文档。

BP_Only_ComponentList.png

Blueprint Editor(蓝图编辑器) 中,您可以在我的蓝图 选卡中添加新建的变量 , 函数 以及 。 您还可以访问蓝图类中包含的所有图表 。 在这些图表中,各种节点 连接到一起,来创建由类变量、游戏事件、甚至Actor的周边环境驱动的设计及游戏功能。

通过使用 My Blueprint(我的蓝图 选卡,把浮点变量 DesiredIntensity 添加到了 LightSwitch_BPOnly 类中。 My Blueprint(我的蓝图 选卡还显示了在 Components Mode(组件模式) 中添加的组件,所以如果需要可以在图表中进行访问。 要想阅读关于使用 My Blueprint(我的蓝图) 选卡添加变量的更多信息,请阅读变量 文档,或者阅读我的蓝图 文档来获得通用的使用信息。

BP_Only_MyBlueprint.png

有两个图表用于设置 LightSwitch_BPOnly 类的行为。 首先是构造脚本 函数图表,它包含了 构建脚本 的函数入口节点。 当把一个Actor添加到关卡中时或当一个现有Actor在关卡中移动时会执行该事件。 在 LightSwitch_BPOnly 类中, Construction Script 事件连接到了 Set Brightness 节点上,以便当在关卡中添加或移动Actor时或者 Desired Brightness 发生改变时,将 Point Light 1 (PointLightComponent) 的亮度设置为 DesiredIntensity 的值。

BP_Only_ConstructionScript.png

LightSwitch_BPOnly 类中设置的另一个图表是 事件图表 。 EventGraph(事件图表)的执行是由事件启动的,比如 OnComponentBeginOverlapOnComponentEndOverlap 事件。 当关卡中的其他Actor和SphereComponent重叠或者离开SphereComponent时,会执行这些事件。 这两个事件都连接到了 Toggle Visibility 节点上,所以当这些事件执行时会切换PointLightComponent的可见性。 关于事件及处理图表的更多信息,请参照事件(Events) , 事件图表 , 以及 图表编辑器 文档。

BP_Only_EventGraph.png

如果您无法从 右键点击 菜单中找到Toggle Visibility(切换可见度)选项,请取消勾选情境关联或在Find a Node(搜寻节点)菜单中尝试搜索。 您还可以通过直接从点光源变量节点拉根线然后搜索Toggle Visibility(切换可见度)来获得相同的结果。

如果您无法找到Sphere1的OnComponentEndOverlap,请确认您选择了球体变量,并使用事件->添加事件来添加事件,或者从 右键点击 菜单中选择添加事件->碰撞->查看 OnComponentBeginOverlap / OnComponentEndOverlap

在变量的设置中, DesiredIntensity 变量设置为 Editable(可编辑的) ,所以在 蓝图编辑器类默认值 中它是可见的,并且可以进行编辑。 这意味着对于类的每个实例,这个变量是可以变化的,所以每个Actor可以有其自己的 DesiredIntensity

BP_Only_Defaults.png

蓝图类可以使用其他蓝图类来进行扩展,通过以下两种方式实现:使用 Class Viewer(类别查看器) 中的类附近的下拉列表按钮来创建一个新蓝图, 或者通过 右击蓝图并选择 Create New Blueprint Based on This(基于此蓝图创建一个新蓝图)

蓝图LightSwitchBPOnly 位于 内容浏览器 中,您可以从那里将其拖拽到关卡内。 它同时位于类别查看器 中。 关于使用 内容浏览器类别查看器 在关卡放置Actor的更多信息,请参照放置Actor 文档。