委托 - Add() 和 AddUObject() 之间有什么区别?

Delegates - What's the difference between Add() and AddUObject()?

绑定Multi Cast Delegate时,Add()AddUObject()的使用区别是什么?

我一直在我的所有绑定上使用 AddUObject(),它们似乎工作正常,这让我想知道基础 Add() 版本的用途。

我阅读了此页面上的信息:

Unreal Documentation - Multicast Delegates

但我不太确定使用每一个的合适位置。在什么情况下我会使用 Add()AddUObject()

谢谢!

Add 接受一个 FDelegate.

AddUObject 是语法糖,用于创建模板化委托并将其绑定到提供的 UObject,然后使用创建的委托调用 Add

就是这样:

template <typename UserClass, typename... VarTypes>
inline FDelegateHandle AddUObject(const UserClass* InUserObject, typename TMemFunPtrType<true, UserClass, void (ParamTypes..., VarTypes...)>::Type InFunc, VarTypes... Vars)
{
    return Add(FDelegate::CreateUObject(InUserObject, InFunc, Vars...));
}