The principal is still the same, just pick the vector somehow meaningfully.
Not 100% sure i wrote the math correctly, but something along those lines should work
float VerticalStep = 10;
float HorizontalStep = 20;
float Radius = 1234;
for(float i = 0; i < 180; i+=VerticalStep)
for(float j = 0; j <= 360; i+=HorizontalStep)
{
FVector Dir = FVector::UpVector;
Dir = Dir.RotateAngleAxis(i, FVector(0,1,0));
Dir = Dir.RotateAngleAxis(j, FVector(0,0,1));
DrawMyObject(Center, Radius, Dir);
}
Maybe HorizontalStep
should also depends on VerticalStep
instead of being independed constant value