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);
}
}