一、代理类型
1.单薄代理
特点:允许有返回值,允许有参数,只可以一对一的传递消息就算绑定多个,但是总会被最后一个覆盖
2.多播代理
特点:不允许有返回值,允许有参数允许一对多传递消息
3.动态代理
特点:声明的类型必须以F开头,结尾必须加分号 只能绑定在UFUNCITION标记的函数上
单播 可以作为参数通过蓝图传递
多播 不允许作为参数通过蓝图传递
二、代理的使用
以单播为例
//声明代理对象
DECLARE_DELEGATE(DelCBo1)
//创建代理对象
DelCBo1 Enevnt;
//绑定代理对象:在需要使用的地方绑定
代理存在组件->Enevnt.AddUObject(this,&UPackageUserWidget::AddItem);
解除绑定 代理存在组件->OnAddItemToPackage.UnBind(this);
//执行代理回调
if(Enevnt.IsBound())
{
Enevnt.Execute(temp);
}