ue4 函数和宏区别_UE4 委托(Delegate)使用场景及用法

UE4 的委托有很多种类型,简单总结了一下使用场景和使用方法,先上一个小图:

4a1db40c2a603fdaeb5e52e34468b76b.png

如上图

  1. 这里将委托分为两大类:单播和多播,区别是可以绑定的方法个数(即该委托可以触发 1 个还是多个事件),区分方式是是否带有关键字 “MULTICAST”或者“EVENT"(可以把Event 看作是特殊的多播,只是只有定义该事件的类才可以调用)。
    单播调用方式为 Execute...,多播为BroadCast;
    标准单播绑定方法为 Bind...(如 BindStatic,BindRaw,BindUObject等),通过 Bind 后面带的关键字,即可知要绑定的类型是 静态,C++ 原生,Uobject 里的函数等等;
    标准多播绑定方式为Add...(如 AddUObject...);
  2. 也可以按是否支持序列化区分,通过关键字 "DYNAMIC"。支持序列化即可被蓝图调用,但是只有 动态多播 可以被蓝图绑定,通过宏 BlueprintAssignable。
    动态单播绑定方法为 BindDynamic,动态多播为 AddDynamic。(单播为 Bind...,多播为Add...)
  3. 还可以按是否有返回值区分,通过关键字 "RetVal",注意只有单播类型的才有返回值。
    至于使用细节这里不再赘述,(如加 UFUNCTION(),某些委托声明时不带参数名称等)。如果确定了要用哪一种,可以在引擎里搜索一下这个宏,看看引擎是怎么用的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值