UEC++中委托事件(代理)的简单使用
//在头文件中声明并创建好委托
//定义并声明委托
DECLARE_DYNAMIC_MULTICAST_DELEGATE_FourParams(Mydelege, AActor*,Instigator,UMyComponent*,OwningPawn, float, NewHealth, float, Delta);//四个参数的委托,区别是最后一个FourParams,几个参数就用字母几,例如1一个参数就换成OneParams
FUNCTION(BlueprintAssignable)//将委托暴露到蓝图中
Mydelege myRealDelege;//第一个参数就是委托定义,再用这个定义声明一个真正的委托!
//在特定的情况下
//委托订阅函数
myRealDelege.AddDynamic(this, &AMyTargetDumy::someFunction);//订阅动态函数就是非static的函数
//委托触发函数
myRealDelege.Broadcast(nullptr, this, health, Delta);//要把参数都和定义的时候填写完整
关于AddDynamic函数的解释:
AddDynamic(Object,Function)
Function好理解,就是这个委托要触发的函数
Object一般是包含这个函数的类实例。如果在本类中订阅,用this表示当前类实例的指针就行