Example #1
0
    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);
    }
Example #2
0
    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);
    }