相对于父级的rectTransfrom的锚点的相对位置,overlay模式下,第三个参数应该设置为null
RectTransformUtility.ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint)
用下面的代码进行拖拽移动
if (RectTransformUtility.ScreenPointToLocalPointInRectangle (parentRectTransform, data.position, data.pressEventCamera, out localPointerPosition)) {
Vector3 offsetToOriginal = localPointerPosition - originalLocalPointerPosition;
panelRectTransform.localPosition = originalPanelLocalPosition + offsetToOriginal;
}
如果为了简单可以直接用RectTransformUtility.ScreenPointToWorldPointInRectangle来移动,不需要计算相对位移。