public Point2D StaticRayCast(Ray ray) { List <Point2D> intersects = new List <Point2D>(); foreach (var statics in staticColliders) { Point2D intersect = statics.RayCast(ray); if (intersect != null) { intersects.Add(intersect); } } if (intersects.Count == 0) { return(null); } return(ListUtils.GetLowest(intersects, (x, y) => (x - ray.Source).Magnitude > (y - ray.Source).Magnitude)); }