void OnSceneGUI()
    {
        CustomRectCollider customRectCollider = (CustomRectCollider)target;

        if (customRectCollider == null || customRectCollider.gameObject == null)
        {
            return;
        }

        // grab the center of the parent
        List <Vector2> points = customRectCollider.ShapePointList();

        Handles.color = Color.green;
        for (int i = 0; i < points.Count - 1; i++)
        {
            Handles.DrawLine(points[i], points[i + 1]);
        }
        Handles.DrawLine(points[points.Count - 1], points[0]);
    }
    public bool IsCollideWithCustomRectCollider(CustomRectCollider otherCollider)
    {
        List <Vector2> rect1 = this.ShapePointList();

        foreach (Vector2 point in rect1)
        {
            if (otherCollider.IsContain(point))
            {
                return(true);
            }
        }
        List <Vector2> rect2 = otherCollider.ShapePointList();

        foreach (Vector2 point in rect2)
        {
            if (IsContain(point))
            {
                return(true);
            }
        }
        return(false);
    }
    // Update is called once per frame

    public override void OnInspectorGUI()
    {
        CustomRectCollider customRectCollider = (CustomRectCollider)target;

        base.OnInspectorGUI();
    }