Trying to get 2 gameobject arrays to differ from each other

Hello, I’m having difficulty with trying to separate the 2 arrays so that way they have 2 different distance values. this script is attached to several child game objects & right now they all reach the same distance when im trying to differ the inner & the outter distance game objects. The pop function is being called on the start of another gameobject.

Vector3 v;
public Transform center;
public float speed, radius,  radius2;
public GameObject[] inner ,outter;

void Start()
{
    v = transform.position - center.position;
}

public void Pop()
{
    if (Vector2.Distance(transform.position, v) < radius)
    {
        for (int i = 0; i < outter.Length; i++)
        {
            transform.position = Vector2.MoveTowards(transform.position, center.position, -1 * speed);
        }
    }

    if (Vector2.Distance(transform.position, v) < radius2)
    {
        for (int i = 0; i < inner.Length; i++)
        {
            transform.position = Vector2.MoveTowards(transform.position, center.position, -1 * speed);
        }
    }
}

Well it’s because you are using the same variable to set the distance for each object, speed. there are multiple ways to solve this and which one is better is just preference. It is all about your speed variable, which I can’t see defined but assume is a float. First off it is badly named you should call it spawnDistence or something like that variable names should be very descriptive. You could use 2 speed variables, float speed1; float speed2; or you could make it a parameter in your Pop() method, so it would be public void Pop(float speed), which I would choose out of the 2, unless you have to call that function from a button or something. You can also explore other ways to solve this, be creative!