find nearest game object unity code example

Example 1: how to find nearest gameobject unity

void FindClosest()
    {     
        float distanceToClosestEnemy = Mathf.Infinity;
        Enemy closestEnemy = null;
       //Edit Enemy in the FindObjectsOfType to a component on the object you
       //want to find nearest 
        Enemy[] allEnemies = GameObject.FindObjectsOfType<Enemy>();

        foreach (Enemy currentEnemy in allEnemies)
        {
            float distanceToEnemy = (currentEnemy.transform.position - this.transform.position).sqrMagnitude;
            if (distanceToEnemy < distanceToClosestEnemy)
            {
                distanceToClosestEnemy = distanceToEnemy;
                closestEnemy = currentEnemy;
            }
        }
  
       //If you want to move to nearest object 
       if(allEnemies.Length > 0) 
       {
           Ally.transform.position = Vector2.MoveTowards(Ally.transform.position, closestEnemy.transform.position, speedMoving * Time.deltaTime);

       }
    }

Example 2: unity find nearest object

Transform GetClosestEnemy(Transform[] enemies)
{
    Transform tMin = null;
    float minDist = Mathf.Infinity;
    Vector3 currentPos = transform.position;
    foreach (Transform t in enemies)
    {
        float dist = Vector3.Distance(t.position, currentPos);
        if (dist < minDist)
        {
            tMin = t;
            minDist = dist;
        }
    }
    return tMin;
}