private void OnDrawGizmosSelected()
        {
            if (!m_DrawGizmos)
            {
                return;
            }

            Color oldColor = Gizmos.color;

            Gizmos.color = Color.white;

            Vector2 center = tsTransform2D.position.ToVector();

            float halfWidth  = m_Width.AsFloat() / 2f;
            float halfHeight = m_Height.AsFloat() / 2f;

            Vector2 topLeft     = new Vector2(center.x - halfWidth, center.y + halfHeight);
            Vector2 topRight    = new Vector2(center.x + halfWidth, center.y + halfHeight);
            Vector2 bottomLeft  = new Vector2(center.x - halfWidth, center.y - halfHeight);
            Vector2 bottomRight = new Vector3(center.x + halfWidth, center.y - halfHeight);

            Vector2 localTopLeft     = topLeft - center;
            Vector2 localTopRight    = topRight - center;
            Vector2 localBottomLeft  = bottomLeft - center;
            Vector2 localBottomRight = bottomRight - center;

            if (m_Angle != FP.Zero)
            {
                FP    angleFP = MathFP.GetNormalizedAngle(m_Angle);
                float angle   = angleFP.AsFloat();

                localTopLeft     = localTopLeft.Rotate(angle);
                localTopRight    = localTopRight.Rotate(angle);
                localBottomLeft  = localBottomLeft.Rotate(angle);
                localBottomRight = localBottomRight.Rotate(angle);
            }

            Gizmos.DrawLine(center + localTopLeft, center + localTopRight);
            Gizmos.DrawLine(center + localTopRight, center + localBottomRight);
            Gizmos.color = Color.blue;
            Gizmos.DrawLine(center + localBottomRight, center + localBottomLeft);
            Gizmos.color = Color.white;
            Gizmos.DrawLine(center + localBottomLeft, center + localTopLeft);

            Gizmos.color = oldColor;
        }