BroadCast event cpp not call my function

Hi dear UE community,

Edit: It works now, my problem was elsewhere.

I’m trying to use MultiCast Delegate to fire an event the same way as OnComponentHit works for collision.

I have declared a Delegate in my file AShip.h:

struct FDamageStruct
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnDamageTaken, const FDamageStruct&, Damage);

In my class:

UPROPERTY(BlueprintAssignable, Category = "Damage")
	FOnDamageTaken OnDamageTaken;

in my file AShip.cpp

OnDamageTaken.Broadcast (damage);

On an another class i register a function to this event with:


MyShip->OnDamageTaken.AddDynamic(this, &ASkill::OnShipDamageTaken);

with Skill.h

    void OnShipDamageTaken(const FDamageStruct& Damage);

My problem is:

During execution time my function OnShipDamageTaken is never call.

If I check the variable OnDamageTaken i see my function is registered.

Does anyone know why my function could not be called ?



I mark it as Solved

I have a same problem with you, can you tell me how to solve it? Thanks~

I was wondering the same thing, but then I realized AddDynamic() was calling my delegate on Broadcast(). The breakpoint in my delegate was skipped because I compiled with the “Development Editor” config and the empty call was optimized-out.

How did you fix the problem?