I’m working on some sort of editor tool that automatically generates a blueprint actor with a set of components.
The amount of components and their content is dynamically decided based on parameters set by the user.
So far so good, I can do all of this in c++. But I also want the user to be able to extend the functionality of these components with blueprints. So basically, I want to select an existing blueprint from the content browser and add it as a component to this new actor I’m creating (like you can usually do in the editor).
This is where I hit a wall, how can I add a component from the content browser to an actor and preserve the reference to the blueprint?
Right now I have something like this:
FStringAssetReference MyAssetPath(pathPackage);
MyComponent* BpComp = (MyComponent*)MyAssetPath.TryLoad();
BpComp->SetupAttachment(parentComponent);
But this creates a reference to the c++ parent class of the blueprint component (MyComponent
) and I lose all the information the user might have put in the blueprint.
Does anyone know how to solve this issue?
I also posted this question on reddit, for people facing the same problem in the future.