UE4之多播委托

时间:2024-04-04 10:21:19

参考:

https://docs.unrealengine.com/zh-CN/Programming/UnrealArchitecture/Delegates/Multicast/index.html

 

概念:

可以绑定到多个函数并一次性同时执行它们的委托。

这里我计划使用多播委托开两个灯

 

多播委托的定义:

DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_OneParam

定义的委托的类型必须是F开头

UE4之多播委托

所以我定义的函数如下

 DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMultiDelegate, bool,enableLight);

括号里面的分别为委托名,参数类型,参数名称。

 

触发多播委托

multiDelegate.Broadcast(true);

这里是C++的代码,下面我们用蓝图实现一个开灯的功能

我一步一步解释一下

首先BeginPlay---》获取为MyTrigger的类---》条件判断---》绑定委托---》执行事件

蓝图节点截图:

BeginPlay :

UE4之多播委托

获取为MyTrigger类,注意这里的条件

UE4之多播委托

获取第一个Actor

UE4之多播委托

判断是否为空

UE4之多播委托

 绑定事件

UE4之多播委托

 还需要自定义事件,最终实现了开灯的操作

UE4之多播委托