Download

Why are latent nodes different from delegate nodes?

I’ve been writing some custom blueprint nodes recently, and I have the need for asynchronous/latent functionality. I know that I can subclass UK2Node_BaseAsyncTask and implement some fields to have out-of-the-box latent handling, but upon looking at the implementation of ExpandNode on UK2Node_BaseAsyncTask, I noticed that it is essentially creating a Delegate + Event and wiring them up for me.

So my question is, why ever use a latent node instead of using a Delegate pin on your node and connect your own event to it? Delegates and events are first-class citizens in UE4, so it seems strange to hide them from the user within a latent node’s implementation. Are there advantages to generating these Delegate + Event nodes at blueprint compile time?