예제 #1
0
        public void Click(Vector2 editorWindowPosition, EventModifiers modifiers = EventModifiers.None)
        {
            var GUIViewPosition = EventUtility.ConvertEditorWindowCoordsToGuiViewCoords(editorWindowPosition);

            HandleMouseAutomationVisibility(GUIViewPosition);
            if (EventUtility.Click(window, GUIViewPosition, modifiers))
            {
                window.RepaintImmediately();
            }
        }
        public void Clicks(EditorWindow window, List <Vector2> clickPositions, float secondsBetweenClicks, EventModifiers modifiers)
        {
            this.clickPositions       = clickPositions;
            this.secondsBetweenClicks = secondsBetweenClicks;

            // First click immediately
            EventUtility.Click(window, clickPositions[0]);

            SetCurrentClickIndex(1);
        }
        public bool Update(EditorWindow window, EventModifiers modifiers)
        {
            if (currentClickIndex >= clickPositions.Count)
            {
                return(false);
            }

            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);
                var mouseStart = clickPositions[currentClickIndex - 1];
                var mouseEnd   = clickPositions[currentClickIndex];

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

                EventUtility.UpdateMouseMove(window, mousePosition);

                if (frac >= 1f)
                {
                    SetCurrentClickIndex(currentClickIndex + 1);
                    EventUtility.Click(window, mousePosition);
                }

                nextEventTime = curtime + (1 / numEventsPerSecond);
                window.Repaint();

                bool shouldContinue = currentClickIndex < clickPositions.Count - 1;
                return(shouldContinue);
            }
            return(true);
        }