public static void BeginDrag(DragSource source) { if (source.IsDraggable() == DraggableResult.Accept) { AcceptBeginDrag(); } else { DeniedBeginDrag(); } void AcceptBeginDrag() { var dragInfo = new DragInfo { Source = source, OriginPosition = source.transform.position }; dragingObjects.Add(source.gameObject, dragInfo); } void DeniedBeginDrag() { source.CancelDragging(); } }
public static void EndDrag(DragSource source) { if (dragingObjects.TryGetValue(source.gameObject, out DragInfo dragInfo)) { if (source.OnDragged() == DraggedResult.ResetPosition) { ResetPosition(dragInfo); } dragingObjects.Remove(source.gameObject); } }
public static void Dragging(DragSource source, Vector3 position) { source.transform.position = position; // Input.mousePosition; }