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); }