It makes a little sense. I will try and rephrase that for you.
Think of the constructor as when the object/actor is built. Use this for all the default settings and so on.
The BeginPlay function is called when the game actually starts or after the object/actor is spawned and in the game world while the game is running from my understanding and this is where you want to put in any spawning you need to do or anything game related. For example if you need to get a pointer to the player controller in your character class you would do that and not in the constructor. In the constructor it wouldn’t know anything about the player controller that is possessing the character/pawn as it isn’t possessed yet. Not really sure when PostInitialize gets called in comparison to the other 2 functions.
I hope this clears up some stuff about the difference between the 2 functions.I am still learning myself on how and when each function is called to know where to place the code I need to add and so on so if anyone else can explain it better or if I have something incorrect in my explanation, please let us know.
LOL, yea, that’s a better description.
One thing, I think the BeginPlay is fired after ALL “Persistent objects”, I think that’s the official UE4 name, in the scene are loaded and ready to play.
Thus insuring everything is loaded, and ready to run.