Oh that looks like it’s working. And the properties that point to them no longer have to be instanced.
I use this helper method in my manager object that acts as their “Outer” to spawn them.
URDBaseHierarchicalRotationController* URDBaseHierarchicalRotationControlManager::CreateDefaultSubobjectRotationController(FName SubobjectName, TSubclassOf<URDBaseHierarchicalRotationController> ControllerClass, int32 Index, bool bTransient)
{
FObjectInitializer* CurrentInitializer = FUObjectThreadContext::Get().TopInitializer();
UE_CLOG(!CurrentInitializer, RDBase, Fatal, TEXT("No object initializer found during construction."));
URDBaseHierarchicalRotationController* Controller = Cast<URDBaseHierarchicalRotationController>(CurrentInitializer->CreateDefaultSubobject(this, SubobjectName, ControllerClass, ControllerClass, true, bTransient));
SetRotationControllerIndex(Controller, Index);
return Controller;
}
One issue I’m having is I created a blueprint subclass of my C++ class and modified a few values. When I place the blueprint actor, the properties are set to the C++ class values in the details panel but when I select reset to default it sets it to the blueprint subclass values.
Another issue is for some reason in the array I can’t see or edit the values of properties when editing the actor BP. But I can see and edit the properties when I view it through the properties themselves. And in the editor details I can see and edit the properties of the subobjects in both the array and the properties.
These 2 seem like possible engine bugs.
Not editable inline in the array. Pitch axis info, Yaw axis info, and Roll axis info are structs that I can’t expand. I can edit one of the enum props.
Editable when I’m editing one of the properties directly that points at one of the instances in the array. This is at array index 2.
Editable in the Details Panel when actor is placed in the level


