public static void Undo() { EditorWindow[] allWindows = EditorWindow.AllWindows; foreach (var window in allWindows) { if (!window.HasFocus) { continue; } UndoRedo localStack = window.UndoRedo; if (localStack == null) { continue; } localStack.Undo(); return; } UndoRedo.Global.Undo(); }