We had multiple BP Classes that contained various components (static mesh, collision, and a custom component). All of those classes inherited from Actor.
Instances of those classes were placed in multiple levels.
We cleaned this up by adding a new Base Class that contains the static mesh, collision, etc components.
I went through the whole time consuming pass of creating the base class, reparenting all the classes, deleting the components from each BP class (since they are now inherited), and then setup the proper values in the inherited components for each class to customize them.
This worked great for the current level.
However, if I open a different level (that has these classes placed), it asserts in “UObject* StaticConstructObject_Internal” on "checkf(!InTemplate || InTemplate->IsA(InClass) || (InFlags & RF_ClassDefaultObject), TEXT(“StaticConstructObject %s is not an instance of class %s and it is not a CDO.”), *GetFullNameSafe(InTemplate), *GetFullNameSafe(InClass)); // template must be an instance of the class we are creating, except CDOs
"
Is there a solution to this? I really hope I don’t have to revert my changes.
We are on Unreal 4.8. Upgrading to the newest version is not an immediate option, given where we are schedule wise.
Any help?
Thanks