Setting RootComponent in C++ constructor doesn't actually change the root component

Have the same problem in 5.4


Снимок экрана 2024-05-10 164645

ABuilding::ABuilding()
{
	this -> SetActorEnableCollision(false);
	InstancedMeshComponent = CreateDefaultSubobject<UInstancedStaticMeshComponent>(TEXT("InstancedMeshComponent"));
	StaticMeshComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMeshComponent"));
	
	if(InstancedMeshComponent)
	{
		InstancedMeshComponent -> SetCollisionEnabled(ECollisionEnabled::NoCollision);
	}

	
	if (BuildingType == EBuildingType::FixedSize)
	{
		SetRootComponent(StaticMeshComponent);
	}
	else
	{
		SetRootComponent(InstancedMeshComponent);
		
	}

}

void ABuilding::BeginPlay()
{
	if (InstancedMeshComponent && InstancedMeshComponent->GetInstanceCount() > 0)
	{
		InstancedMeshComponent->ClearInstances();
	}
	
	if (BuildingType == EBuildingType::FixedSize)
	{
		SetRootComponent(StaticMeshComponent);
	}
	else
	{
		SetRootComponent(InstancedMeshComponent);
		
	}
}