DECLARE_DELEGATE_OneParam(FOnPlayerCurHPChange, float);
单播委托,即 只能绑定一个函数。
DECLARE_DYNAMIC_DELEGATE_OneParam
动态单播
DECLARE_MULTICAST_DELEGATE_OneParam(FOnPlayerMaxHPChange, float);
多播委托,可以 绑定多个函数。
DECLARE_DYNAMIC_MULTICAST_DELEGATE
动态多播
OnPlayerCurHPChange.ExecuteIfBound(GetPlayerCurHP());
执行单播
OnPlayerMaxHPChange.Broadcast(GetPlayerMaxHP());
执行多播
OnPlayerCurHPChange
是一个 DECLARE_DELEGATE_OneParam
定义的委托。
ExecuteIfBound()
检查委托是否绑定,如果绑定了,就执行。
GetPlayerCurHP()
是一个返回 float
的函数,获取玩家当前血量。
PS->OnPlayerCurHPChange.BindUObject(this, &UUI_PlayerInfoUI::SetPlayerCurHP);
绑定单播
PS->OnPlayerMaxHPChange.AddUObject(this, &UUI_PlayerInfoUI::SetPlayerMaxHP);
绑定多播