/// <summary> /// Handler for drag event. /// </summary> /// <param name="eventData">Pointer data.</param> public void OnDrag(PointerEventData eventData) { DebugEx.VeryVerboseFormat("DockingTabButton.OnDrag(eventData = {0})", eventData); DragInfoHolder.minimum = float.MaxValue; DragInfoHolder.dockingArea = null; DragInfoHolder.mouseLocation = DragInfoHolder.MouseLocation.Outside; RaycastResult raycastResult = eventData.pointerCurrentRaycast; DockingAreaScript hitDockingArea = null; if (raycastResult.gameObject != null) { hitDockingArea = Utils.FindInParents <DockingAreaScript>(raycastResult.gameObject); } if (hitDockingArea != null && hitDockingArea.HasDragInfo()) { hitDockingArea.PreprocessDockWidgetDrag(eventData); } else { for (int i = mDockingAreas.Count - 1; i >= 0; --i) { mDockingAreas[i].PreprocessDockWidgetDrag(eventData); } } if (DragInfoHolder.dockingArea != null) { DragInfoHolder.dockingArea.ProcessDockWidgetDrag(eventData); } if (DragInfoHolder.dockingArea != null) { DragData.HideImage(); } else { DummyDockWidgetScript.DestroyInstance(); DragData.ShowImage(); DragData.Drag(); } }