Get Components of Blueprint into c++ Array

Hey there,

i currently have a TArray<FClassInfo> inside an Actorclass and its a UProperty(EditDefaultsOnly).

FClassInfo is for different kind of information i want to assign to each UStaticMeshComponent
a blueprint may have.

For now i do the following to fill my Array with components:




void ACustomClass::PostRegisterAllComponents()
{
	Super::PostRegisterAllComponents();

	TArray<UStaticMeshComponent*> StaticMeshComps;
	GetComponents(StaticMeshComps);
	

for (UStaticMeshComponent* EachSMC : StaticMeshComps)
{		
	ComponentSet.Add(FClassInfo(EachSMC));		
}
	

}

as i said the ComponentSetArray is a UPROPERTY and visible in Class Defaults of a Blueprint…

However, as long as a Blueprint has only one UStaticMeshComponent which is there by default
i can see it in the Array and set up the ClassInfo properties and everything works fine with this one component.

As soon as I add another component as a child, after compiling, re-opening the editor, even the first one is gone.

So now i have 2 Question:

  1. How can I update the Class Defaults when a component is added to the Blueprint´s Components?

  2. Why do i see only one Component in my Array, and none if i have more than one?

best regards