Event execution for BP derived from C++
It appears that if you have BeginPlay event in BP parented from C++ class then BP's BeginPlay executes first and then BeginPlay defined in C++ class. This happens even if you haven't done "add parent function call" to add parent node. Even if you do add parent node for BeginPlay it has no effect on above behavior. In other words, BP's BeginPlay event always gets called first and the BeginPlay event in C++ next - no matter what you do.
Is this correct behavior? My assumption from the current documentation was that BeginPlay in C++ would not get executed if I'd BeginPlay in BP child class - unless I added a node for parent call.
The code implementation of BeginPlay will always trigger, whether BeginPlay is used in the blueprint or not. The blueprint's call to Being Play is determined by where the call to
answered Jan 31 '17 at 07:48 PM
To add on to @Doug's answer, here's how this work:
The Super::BeginPlay() call does call the base class of C++ code class. In the base class however there is line of call RecieveBeginPlay() which redirects the call to Blueprint's the BeginPlay(). Thus C++ code controls exactly when (and if ) Blueprint's event gets called.
answered Jan 31 '17 at 09:57 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here