private void OnDrawGizmos()
        {
            bool selected      = Selection.Contains(gameObject);
            var  isometricGrid = FindObjectOfType <IsometricGrid>();

            if (isometricGrid != null && !isometricGrid.ShowSpritesLines && !selected)
            {
                return;
            }

            var oldColor = Gizmos.color;

            var p0 = IsometricGrid.TwoDToIso(_point0.x, _point0.y);
            var p1 = IsometricGrid.TwoDToIso(_point1.x, _point0.y);
            var p2 = IsometricGrid.TwoDToIso(_point1.x, _point1.y);
            var p3 = IsometricGrid.TwoDToIso(_point0.x, _point1.y);

            Gizmos.color = selected ? Color.cyan : Color.blue;

            Gizmos.DrawLine(new Vector3(p0.x, p0.y, 0.0f), new Vector3(p1.x, p1.y, 0.0f));
            Gizmos.DrawLine(new Vector3(p1.x, p1.y, 0.0f), new Vector3(p2.x, p2.y, 0.0f));
            Gizmos.DrawLine(new Vector3(p2.x, p2.y, 0.0f), new Vector3(p3.x, p3.y, 0.0f));
            Gizmos.DrawLine(new Vector3(p3.x, p3.y, 0.0f), new Vector3(p0.x, p0.y, 0.0f));

            Gizmos.color = oldColor;
        }
        void SetWorldPosition()
        {
            Vector3 position = IsometricGrid.TwoDToIso(_position.x, _position.y);

            position.z           = transform.position.z;
            transform.position   = position;
            transform.hasChanged = false;
        }