Skip to main content
1 of 2
Omer
  • 214
  • 5
  • 17

Sort a list of objects by distance?

Today I got issue with a script we solved here. OK, Here if enemy enter player ring, he "enemy" gets inside player list. Now, if group of enemies get inside this the ring I need to sort them by distance from player. The first one in the list will be the closest enemy from player, and so on. If one die, new enemy will add to list that nearest/closest to player. Will my GameObject list allow me to do this ? or I need to make new Vector3 list ? I'm using System.Linq.

    public List<GameObject> enemiesInRange = new List<GameObject>();
    public int hox;

// Update is called once per frame
void Update()
{

    hox = enemiesInRange.Count;
    if (hox == 3)
        print("Frist enemy near you is " + enemiesInRange[0] + ", " + enemiesInRange[1] + ", " + enemiesInRange[2]);
    //   enemiesInRange[0].GetComponent<enemypath>().enemey_checker = true;
    //   enemiesInRange[1].GetComponent<enemypath>().enemey_checker = true;
    //   enemiesInRange[2].GetComponent<enemypath>().enemey_checker = true;

}


void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("enemy") && hox < 3)
        enemiesInRange.Add(other.attachedRigidbody.gameObject);
}

void OnTriggerExit(Collider other)
{
    if (other.CompareTag("enemy"))
        enemiesInRange.Remove(other.attachedRigidbody.gameObject);
}

I really hope to solve this issue and finish from this point.

Omer
  • 214
  • 5
  • 17