private Unit FarthestSideUnit(Vector2 pos, Collider2D[] cols, Side side, UnitCheckFunc function = null) { Unit farthest = null; float biggestDist = 0; foreach (Collider2D col in cols) { Unit unit = col.GetComponent <Unit>(); if (unit && unit.m_side == side && (function == null || function(unit))) { float dist = Vector2.Distance(pos, col.transform.position); if (dist > biggestDist) { biggestDist = dist; farthest = unit; } } } return(farthest); }
private Unit NearestSideUnit(Vector2 pos, Collider2D[] cols, Side side, UnitCheckFunc function = null) { Unit nearest = null; float smallestDist = float.MaxValue; foreach (Collider2D col in cols) { Unit unit = col.GetComponent <Unit>(); if (unit && unit.m_side == side && (function == null || function(unit))) { float dist = Vector2.Distance(pos, col.transform.position); if (dist < smallestDist) { smallestDist = dist; nearest = unit; } } } return(nearest); }