Add 0.5f to Vector.Right on next instantiated object ?

This is a continuation of this question I posted yesterday about instantiating gameobjects based on a random value, I got it to work , but the problem is the gameobjects instantiate on top of each other. I was wondering if it it possible to add about 0.5f to the vector3.right of the NEXT instantiated gameobject after each current gameobject is instantiated.

So if _gold returns the value “1234” , then the script gets the 1, 2, 3, 4 gameobjects from the following array and is instantiating them,
alt text

But the problem is they’re on top of each other when i kill the enemy, like this:
alt text

I need that instaniate part of the script to add an extra 0.3f on the next number that’s instantiated.

[SerializeField]
private int _gold;
public int _goldmin;
public int _goldmax;

public GameObject[] Numbers;

private void Start()
{
    Numbers = new GameObject[Resources.LoadAll<GameObject>("numbers").Length];
    Numbers = Resources.LoadAll<GameObject>("numbers") as GameObject[];
}

void numbers()
{
    
    int digits = _gold;
    do
    {
        Instantiate(Numbers[digits % 10], transform.position + Vector3.up * 0.5f, Quaternion.identity);
        digits /= 10;
    } while (digits > 0);

int digits = _gold;
Vector position = transform.position + Vector3.up * 0.5f ;
do
{
Instantiate(Numbers[digits % 10], position, Quaternion.identity);
digits /= 10;
position += Vector3.right * 0.5f ;
} while (digits > 0);