Wow, that’s quite an update!
Regarding the C++ changes, I’m unclear on how to proceed, based on the explanations in the Release Notes. Currently I have code like :
AMyCharacter::AMyCharacter(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP)
{
Body = PCIP.CreateOptionalDefaultSubobject<USkeletalMeshComponent>(, AMoHCharacter::BodyComponentName);
}
The existing documentation (4.5) makes it appear as if we simply replace the PCIP-related code directly with:
AUDKEmitterPool::AUDKEmitterPool(const class FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
The release notes, however, state:
“FPostContructInitializeProperties is deprecated. It’s replaced by FObjectInitializer, and you only have to specify it when you actually need it.”
How do I know if I need it (i.e. How does FObjectInitializer replace PCIP, because it’s not actually used in the documentation example)?
I am also unclear on how the Body (skel mesh) component is now created. The release notes state “You now define and use “normal” C++ constructors for your classes”.
Does mean that I would write something like:
Body = new USkeletalMeshComponent();
If yes, do I need to check classes like to see if they require parameters, or if they have empty constructors, before instantiating them?
I understand that there is a requirement for macros so that the user-generated code is integrated into/exposed to the editor. That said, there’s a fair bit of it, and to someone without a detailed understanding of what the macros do under the hood, it seems arcane. Therefore, when you make fundamental changes to the code structure like , then someone like me (Java programmer), needs to wait until someone gets around to updating an existing wiki example, or writes a new one.
I apologize if I sound like I’m complaining; I’ve only been working with UE4 for a short while, and I am enjoying the experience. To get up and running quickly, however, I rely heavily (too heavily, perhaps) on existing “boiler plate” examples. Therefore, if you could shine some light on how these changes affect existing code (sort of a before and after example), it would be appreciated.
Thanks again for all of your hard work.