Double spawning issue with Infinite Tile Generation using Prefabs

I’m really struggling to get an infinite tile generation system working properly. At the moment it generates tiles as I walk but tiles are often generated on top of existing ones. My player only has one collider.

The system uses a tile prefab with eight surrounding Tile Positioners - North, NorthEast, NorthWest, South, SouthEast, SouthWest, East and West. These positioners are supposed to check if a spawner already exists where they’re placed and if one does destroy themselves. If none exist they will instantiate a spawner. The reason I did it like this was because each spawned tile needs to reference the spawners already nearby it as well as adding missing ones.

What you can do instead is not to instantiate any spawners at all. Maintain a Dictionary<Vector2Int,TileComponent> ExistingTiles = new (); and just check if neighboring tiles exist, then spawn only if the spot is free.

Vector2Int coord = new Vector2Int( x + _ , y + _ );
if( ExistingTiles.ContainsKey(coord)==false )
{
    /* spawn */
    ExistingTiles.Add( coord , tileComponentOfJustSpawnedObject );
}