Ejemplo n.º 1
0
 public static void DrawTransformedRectangleOutlines(TransformedRectangleF rectangle)
 {
     Debug.DrawLine(rectangle.TopLeft, rectangle.TopRight);
     Debug.DrawLine(rectangle.TopRight, rectangle.BottomRight);
     Debug.DrawLine(rectangle.BottomRight, rectangle.BottomLeft);
     Debug.DrawLine(rectangle.BottomLeft, rectangle.TopLeft);
 }
Ejemplo n.º 2
0
 public static void DrawTransformedRectangleOutlines(TransformedRectangleF rectangle, Color color, float time)
 {
     Ensure.True(time >= 0);
     Debug.DrawLine(rectangle.TopLeft, rectangle.TopRight, color, time);
     Debug.DrawLine(rectangle.TopRight, rectangle.BottomRight, color, time);
     Debug.DrawLine(rectangle.BottomRight, rectangle.BottomLeft, color, time);
     Debug.DrawLine(rectangle.BottomLeft, rectangle.TopLeft, color, time);
 }
Ejemplo n.º 3
0
    // really hacked, collider2D.bounds is coming in Unity 4.5
    public static RectangleF GetBoundsHack(this Collider2D collider)
    {
        Ensure.NotNull(collider);
        if (collider is BoxCollider2D)
        {
            float         rotation    = collider.transform.GetRotation2D();
            BoxCollider2D boxCollider = collider as BoxCollider2D;

            Vector2f size          = collider.gameObject.GetScale2D() * boxCollider.size;
            Vector2f center        = boxCollider.center.ToVector2f() / boxCollider.size;
            Vector2f origin        = Vector2f.One * 0.5f - center;
            Vector2f startPosition = collider.gameObject.GetPosition2D() - origin * size;

            TransformedRectangleF transformedBounds = TransformedRectangleF.CreateRotated(new RectangleF(startPosition.X, startPosition.Y, size.X, size.Y), origin * size + startPosition, rotation);
            return(transformedBounds.Bounds);
        }

        throw new NotImplementedException("");
    }