To know if a prefab will not stay inside an object in the moment of instantiating

Hello, I’m creating a random position smaller than the map size and I want to instantiate a prefab in this position but before instantiating I want to know if I do not already have a gameobjetc in the same place, so it does not occur from the prefab getting inside the object, how do I do this ?

I have using

for(int i = 0; i < qtdColeteL; i++)
        {
            int numX = Random.Range(numXMax, numXMin);
            int numZ = Random.Range(numZMax, numZMin);
            Vector3 itemNasce = new Vector3(numX, 0, numZ);
            Instantiate(itemColete, itemNasce, Quaternion.identity);

            void OnTriggerEnter(Collider other)
            {
                if (other.gameObject.tag == "TagName")
                {
                    Destroy(this.gameObject);
                }
            }
        }

but I do not know if it’s right. He wanted to make that if the object collided he would not be counted in the for and for it to be executed the predetermined number of times.

I have another question, I am using Quaternion.identity but he is setting the position in relation to the plan and not the position that is already set in the prefab, how do I leave it with the prefab position?