返回 导航

UE5

hangge.com

UE5 - 事件分发器使用详解(附:实现事件的广播与绑定)

作者:hangge | 2025-08-12 08:42
    在游戏开发中,经常需要在对象之间实现松耦合的通信。事件分发器(Event Dispatcher)正是为此而生:它允许一个对象在特定时机广播事件,其他对象可以动态地订阅(绑定)这些事件,从而在事件触发时收到通知。相比直接调用函数或使用接口,事件分发器具有更高的灵活性和可维护性。下面我将通过样例演示如何创建并使用事件分发器。

1,创建事件分发器

(1)为方便演示,首先我们创建一个能够响应鼠标点击的立方体蓝图 BP_Cube,具体实现步骤参考我之前写的文章:

(2)打开 BP_Cube 蓝图,在“我的蓝图”面板中创建一个事件分发器,并将其命名为 CubePressed。接着在“细节”面板的“输人”类别中创建一个新参数,将其命名为 BP_Cube,并设置为 BP Cube 类型对象引用。

2,广播事件

(1)切换到 BP_Cube 蓝图的“事件图表”选项卡,拖拽 CubePressed 事件分发器到空白处,在打开的列表中选择“调用”选项。

(2)连接刚创建的节点到“On Clicked”事件节点。在“事件图表”的空白处右击,在窗口中搜索“self”,然后选择 Geta reference to self 操作,并连接节点调用事件分发器。

3,在关卡蓝图中监听分发器

(1)将 BP_Cube 拖拽到关卡场景中。

(2)确保 BP_Cube 实例为选中状态,打开关卡蓝图。在“事件图表”选项卡的空白处右击,在打开的窗口中添加 Add Cube Pressed 节点。

(3)然后添加如下逻辑,当分发器触发时,在立方体位置生成“P_Explosion_Big_A”这个爆炸特效。
提示:爆炸粒子特效“P_Explosion_Big_A”来自“Realistic Starter VFX Pack Vol 2”这个免费资源库,具体介绍安装步骤可以参考我之前写的文章(点击查看

(4)运行游戏,当我们点击立方体时可以看到立方体的位置会产生爆炸特效。

附:在其他蓝图中绑定事件

1,创建另一个响应事件的蓝图

(1)在内容浏览器中点击 “添加 蓝图类”。在“选择父类”对话框中,选中“Actor”作为父类,命名该蓝图为 BP_Ball

(2)打开 BP_Ball 蓝图,在“组件”面板中添加一个“球体

(3)在“我的蓝图”面板中创建 BP_Cube 的变量,设置变量的类型为 BP_Cube 类型对象引用。保持创建的变量为选中状态,在“细节”面板中勾选“可编辑实例”复选框。

(4)在“事件图表”选项卡中添加如下逻辑,绑定 BP_Cube 对象的 CubePressed 事件,当事件触发时隐藏球体。

2,运行测试

(1)将 BP_Ball 拖拽到关卡场景中。

(2)选中 BP_Ball 实例,在关卡编辑器“细节”面板的“默认”类别中,单击 BP Cube 变量的下三角按钮,在列表中选择 BP_Cube 实例。

(3)运行游戏,可以看到初始时球体是正常显示。但我们点击立方体后,球体便隐藏起来。
评论

全部评论(0)

回到顶部