public static void SetPositionDelta(Vector3 newPosition, Vector3 oldPosition)
        {
            if (s_MouseDownState == null)
            {
                return;
            }

            s_PreviousHandlePosition = newPosition;
            if (!s_LockHandle)
            {
                Tools.UpdateHandlePosition(newPosition);
            }
            Vector3 positionDelta = newPosition - oldPosition;

            for (int i = 0; i < s_MouseDownState.Length; i++)
            {
                var cur = s_MouseDownState[i];
                Undo.RecordObject((cur.rectTransform != null ? (Object)cur.rectTransform : (Object)cur.transform), "Move");
            }

            if (s_MouseDownState.Length > 0)
            {
                s_MouseDownState[0].SetPositionDelta(positionDelta, true);
                Vector3 firstDelta = s_MouseDownState[0].transform.position - s_MouseDownState[0].position;

                for (int i = 1; i < s_MouseDownState.Length; i++)
                {
                    s_MouseDownState[i].SetPositionDelta(firstDelta, false);
                }
            }
        }