UE4蓝图通信-事件分发器(Event Dispatcher)

事件分发器在蓝图编辑器的我的蓝图选项卡中创建
在这里插入图片描述
事件分发器是蓝图中的一个工具,其概念跟委托、回调、QT的信号槽是完全一样的。

事件分发器的工作流程非常简单:

  1. 持有事件分发器的Actor(发信者),可以进行广播,即发送一个信号给世界
  2. 订阅了该消息的Actor,在发信者广播之后会接受到该信号并执行自定义的事件

使用分发器

  1. 发信者:发信者蓝图中拖出刚创建的事件分发器,选择call节点,这个节点的作用就是将信号发送给世界,连到某个事件后面,可以是输入事件(按键、鼠标点击等),也可以是别的蓝图触发这个事件
    在这里插入图片描述在这里插入图片描述
  2. 接收者(可以多个):
    • 首先必须获取到发信者的引用
      在这里插入图片描述
    • 接收者蓝图中调用Bind Event to <分发器变量名>,Event处连接一个自定义事件,名字随意,这个事件就是信号发出后,会执行的事件,实际上就是一个回调函数(在信号发出的时候回头来调这个函数)
      -
      不要像这样用call,如果用call的话是又给世界中发送一个信号
      在这里插入图片描述

只需要上面两个步骤即可完成蓝图通信的通道建立。

Unbind Event 解除绑定事件

如果需要事件分发器发出信号后,接收者不再作出反应,则需要在某个时刻执行Unbind Event,可以是发信者主动解绑所有事件,也可以是接收者决定某个时刻以后不再接收该信号。

  • 发信者解除所有绑定事件
    在这里插入图片描述
  • 发信者解除单个绑定事件
    自己的蓝图里的某个事件,也能绑定到这个事件分发器,自己响应自己)比如这里按1绑定,按5解绑
    在这里插入图片描述
  • 接收者通过发信者的引用,解绑事件
    在这里插入图片描述
    Event引脚传入要解除的事件
    在这里插入图片描述
  • 某个接收者通过发信者的引用解绑所有接收者的绑定
    在这里插入图片描述
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宗浩多捞

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值