委托 - 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...));
}
绑定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...));
}