Currently if I construct an optional default subobject component within a native C++ Actor I have to make a child C++ actor to say that component is not used. The optional modifier is far less useful if it doesn’t allow the component to be optional in a child blueprint template of that native Actor.
My project has a variety of use cases where I have a default template for some type and then custom versions of that type in data, but those data versions often need their own C++ version to get rid of that optional component.
You might ask why don’t I add that optional component dynamically in editor for the original native C++ actor. The reason why I don’t want to do that is because it would require adding it dynamically for every instance of that Actor. That is a user-error prone method when I desire a default template of that Actor.
It is especially troublesome when you have 10+ unique components on an Actor.