UE4的delegate

本文介绍了UE4中的Delegate机制,其本质是一个特殊类对象,用于存储函数指针和额外参数。通过DECLARE_DELEGATE系列宏声明不同类型的Delegate,如FComponentBeginOverlapSignature示例。Delegate的使用包括Bind函数绑定和Execute函数执行。对于多播Delegate,可通过内部函数__Internal_AddDynamic添加动态函数。了解这些,有助于更好地理解和应用UE4中的Delegate。
摘要由CSDN通过智能技术生成


首先,UE4中的delegate和C#里边是一样的,delegate的本质是一个特殊类的对象,它可以储存(一个或多个)函数指针和payload数据(就是除了函数指针,还能存些你调用时候的额外参数)UE4中的delegate类名字中都有signature,这里我们以overlap的回调委托为例:在各种mesh components中,都有这么一个字段

FComponentBeginOverlapSignature OnComponentBeginOverlap;

其中FComponentBeginOverlapSignature这个类就是一个delegate,在这里,他还是一个broadcast delegate,我们看看他的实现

DECLARE_DYNAMIC_MULTICAST_DELEGATE_FiveParams( FComponentBeginOverlapSignature,class AActor*, OtherActor, class UPrimitiveComponent*, OtherComp, int32, OtherBodyIndex, bool, bFromSweep, const FHitResult &, SweepResult);

很显然,这个类的声明使用了UE4的一个宏定义,这个宏是一个系列,是专门用来声明delegate的,毕竟我们不可能自己声明一个delegate类,这太困难。但是使用这个宏,我们可以很方便的声明委托类。首先宏本体有很多种&

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值