Actor: OnTakeAnyDamage Delegate vs override TakeDamage?

I am confused about that.

I have a simple Actor, it is a TreeActor, my character apply damage on it by Blueprint ApplyDamage, then in cpp, TreeActor, I found a delegate OnTakeAnyDamage, I use it, but not recive damage(not be invoked), I found another function named TakeDamage, so I override it, this one receive event.

so, why there is two way to receive damage event? why OnTakeAnyDamage delegate not work?


Very good question, but no answer?

Why not debug both and record times? See if one is faster