private static bool ToggleGameViewFullscreen(bool triggeredOnPlayStateChange) { EditorFullscreenSettings.FullscreenOption fullscreenOps; if (triggeredOnPlayStateChange) { fullscreenOps = EditorFullscreenSettings.settings.openFullscreenOnGameStart; } else { fullscreenOps = EditorFullscreenSettings.GetFullscreenOptionsForWindowType(EditorFullscreenState.gameViewType); } bool setFullscreen = !EditorFullscreenState.WindowTypeIsFullscreenAtOptionsSpecifiedPosition(EditorFullscreenState.gameViewType, fullscreenOps); EditorFullscreenState.RunOnLoad methodToRun; if (!triggeredOnPlayStateChange) { methodToRun = ToggleGameViewFullscreen; } else { methodToRun = ToggleGameViewFullscreenPlayStateWasChanged; } if (EditorFullscreenState.RunAfterInitialStateLoaded(methodToRun)) { return(setFullscreen); } setFullscreen = EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(null, EditorFullscreenState.gameViewType, fullscreenOps, triggeredOnPlayStateChange); var focusedWindow = EditorWindow.focusedWindow; EditorMainWindow.Focus(); if (focusedWindow != null) { focusedWindow.Focus(); } if (!triggeredOnPlayStateChange) { bool isPlaying = EditorApplication.isPlaying || EditorApplication.isPlayingOrWillChangePlaymode; if (settings.startGameWhenEnteringFullscreen && !isPlaying && setFullscreen) { //Enter play mode EditorApplication.ExecuteMenuItem("Edit/Play"); } else if (settings.stopGameWhenExitingFullscreen != EditorFullscreenSettings.StopGameWhenExitingFullscreen.Never && isPlaying && !setFullscreen) { if (settings.stopGameWhenExitingFullscreen == EditorFullscreenSettings.StopGameWhenExitingFullscreen.WhenAnyFullscreenGameViewIsExited || !WindowTypeIsFullscreen(EditorFullscreenState.gameViewType)) { //Exit play mode EditorApplication.ExecuteMenuItem("Edit/Play"); } } } return(setFullscreen); }
/// <summary> /// Toggle fullscreen for the window under the cursor. /// </summary> /// <returns>True if the window became fullscreen. False if fullscreen was exited.</returns> public static bool ToggleWindowUnderCursorFullscreen() { if (EditorWindow.mouseOverWindow != null) { return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(EditorWindow.mouseOverWindow, EditorWindow.mouseOverWindow.GetType(), EditorFullscreenSettings.settings.windowUnderCursor)); } else { return(false); } }
/// <summary> /// Toggles fullscreen for the focused window. /// </summary> /// <returns>True if the window became fullscreen. False if fullscreen was exited.</returns> public static bool ToggleFocusedWindowFullscreen() { if (EditorWindow.focusedWindow != null) { return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(EditorWindow.focusedWindow, EditorWindow.focusedWindow.GetType(), EditorFullscreenSettings.settings.currentlyFocusedWindow)); } else { return(false); } }
/// <summary> /// Toggles fullscreen for the scene view. /// </summary> public static bool ToggleSceneViewFullscreen() { return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(typeof(CustomSceneView))); }
/******************************************/ /************ Hotkeyed Methods ************/ /******************************************/ /// <summary> /// Toggles fullscreen for the main editor window. /// </summary> /// public static bool ToggleMainWindowFullscreen() { return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(EditorFullscreenState.mainWindowType)); }
/// <summary> /// Toggle fullscreen at a position decided according to the current settings for the specified window type. /// </summary> public static bool ToggleFullscreenAtOptionsSpecifiedPosition(Type windowType) { return(EditorFullscreenState.ToggleFullscreenAtOptionsSpecifiedPosition(windowType)); }