动态委托

可序列化且支持反射的委托。

Choose your operating system:

Windows

macOS

Linux

动态委托可序列化,其函数可按命名查找,但其执行速度比常规委托慢。

声明动态委托

动态委托的声明方式与

[声明标准委托](programming-and-scripting/programming-language-implementation/delegates-and-lamba-functions-in-unreal-engine#DeclaringDelegates)
相同, 只是前者使用动态委托专属的宏变体。

声明宏

描述

DECLARE_DYNAMIC_DELEGATE[_RetVal, ...]( DelegateName )

创建一个动态委托。

DECLARE_DYNAMIC_MULTICAST_DELEGATE[_RetVal, ...]( DelegateName )

创建一个动态组播委托。

动态委托绑定

辅助宏

说明

BindDynamic( UserObject, FuncName )

用于在动态委托上调用BindDynamic()的辅助宏。自动生成函数命名字符串。

AddDynamic( UserObject, FuncName )

用于在动态组播委托上调用AddDynamic()的辅助宏。自动生成函数命名字符串。

RemoveDynamic( UserObject, FuncName )

用于在动态组播委托上调用RemoveDynamic()的辅助宏。自动生成函数命名字符串。

执行动态委托

[INCLUDE:programming-and-scripting/programming-language-implementation/delegates-and-lamba-functions-in-unreal-engine#ExecutingDelegates]
本文基于此前的虚幻引擎版本编写,未针对当前的虚幻引擎5.0版本更新过。