public bool Update(EditorWindow window, EventModifiers modifiers)
        {
            float curtime = (float)EditorApplication.timeSinceStartup;

            if (curtime > nextEventTime)
            {
                // Dispatch fake drag and drop events
                float frac = Mathf.Clamp01((curtime - startTime) / (endTime - startTime));

                frac = Easing.Quadratic.InOut(frac);

                Vector2 mousePosition = Vector2.Lerp(mouseStart, mouseEnd, frac);

                EventUtility.UpdateDragAndDrop(window, mousePosition);

                bool shouldContinue = frac < 1.0f;
                if (!shouldContinue)
                {
                    EventUtility.EndDragAndDrop(window, mousePosition);
                }

                nextEventTime = curtime + (1 / numEventsPerSecond);
                window.Repaint();
                return(shouldContinue);
            }
            return(true);
        }
예제 #2
0
 public void EndDrop(Vector2 end, EventModifiers modifiers = EventModifiers.None)
 {
     end = EventUtility.ConvertEditorWindowCoordsToGuiViewCoords(end);
     HandleMouseAutomationVisibility(end, true);
     if (EventUtility.EndDragAndDrop(window, end, modifiers))
     {
         window.RepaintImmediately();
     }
 }