public void UpdateRaycastOrigins() {
UpdateInnerBounds();
CalculateRaySpacing();
// cache
Vector3 min = bounds.min;
Vector3 max = bounds.max;
float half_width = bounds.size.x * 0.5f;
raycastOrigins.bottomLeft = new Vector2 (min.x, min.y);
raycastOrigins.bottomCenter = new Vector2 (min.x + half_width, min.y);
raycastOrigins.bottomRight = new Vector2 (max.x, min.y);
raycastOrigins.topLeft = new Vector2 (min.x, max.y);
raycastOrigins.topCenter = new Vector2 (min.x + half_width, max.y);
raycastOrigins.topRight = new Vector2 (max.x, max.y);
}