【虚幻5】按压压力板后打开大门的蓝图业务逻辑

场景示意图.png

官方教程中实现了一种场景机关玩法,当玩家操控的角色站到压力板上后,旁边的门将打开。如果离开压力板,则门将关闭。

现对该功能的蓝图业务逻辑进行梳理,做一个笔记。

一、蓝图实例说明

本功能由2个蓝图实例和1个蓝图组件共同构成。
BP_PressurePlate是压力板(蓝图类型:Actor)
BP_Door是大门(蓝图类型:Actor)
BP_InterractionComponent是蓝图组件(蓝图类型:ActorComponent),负责消息的播放,用于在2个蓝图实例之间传递消息。

二、BP_InterractionComponent(消息通知组件蓝图)

ActorComponent蓝图组件,有2个自定义事件(custom event)、1个事件分发器。
该组件将挂载到其他蓝图中,由其他蓝图调用。


蓝图逻辑.png

事件分发器.png

StartInteraction自定义事件(custom event),调用它将会把事件分发器中的布尔变量On设为True
StopInteraction自定义事件(custom event),调用它将会把事件分发器中的布尔变量On设为Flase

三、BP_PressurePlate(压力板蓝图)

添加组件的方式.png

首先需要在蓝图界面坐上以添加的方式将BP_InterractionComponent以组件的形式加入到压力板蓝图中。才可以调用。


拖拽组件到蓝图事件图表窗口中.png

调用的业务逻辑流程.png

组件蓝图中的自定义事件将可以被调用.png

BP_InterractionComponent作为了BP_PressurePlate的一个组件后,在事件图表窗口中就可以把蓝图中的自定义事件当作函数来访问和使用了。

四、BP_Door(大门蓝图)

新增一个触发器变量.png

大门蓝图中,需要添加一个触发器变量,将该变量的类型改为{Actor},并且点击右侧的眼睛,使其变为公有类型,用来存放压力板蓝图实例。


为触发器Trigger设置引用对象.png

然后在场景中选择大门实例,并在【细节】面板,找到Trigger触发器变量,设置引用对象为场景中的压力板实例。


在大门的蓝图事件图表窗口中调用.png

在蓝图事件图表窗口中,拖拽Trigger变量,选择“获取Trigger”,使之成为一个节点,然后在该节点上右键,选择“转换为有效的Get”,使之变为下图所示的带引脚的节点


变量节点转换.png

Trigger业务逻辑.png

Trigger引脚输出引用的对象,然后通过“按类获取组件”节点,设置组件类型为BP_InterractionComponent,这部分的业务是从Trigger引用的压力板蓝图实例中获取组件“BP_InterractionComponent”
要获取的对象.png

而在业务逻辑上方的"is Valid"节点,是判断Trigger触发器中的对象是否存在“BP_InterractionComponent”,如果为空则不会执行后续业务逻辑。


拿到事件分发器的布尔值.png

这部分的业务是从Trigger引用对象中的“BP_InterractionComponent”组件中,拿到自定义的事件分发器“OnInterract”,并获得其中的布尔值变量On的状态。基于该布尔值的状态进行分支判断,从而执行大门的打开和关闭动画业务逻辑。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容