Created
March 27, 2020 16:23
-
-
Save fnuecke/d4275087cc7969257eae0f939fac3d2f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#if UNITY_EDITOR | |
using System; | |
using System.Reflection; | |
using UnityEditor; | |
using UnityEngine; | |
/// <summary> | |
/// Little utility for opening a "Game" view in fullscreen. Will be opened on whatever Unity thinks is the "main" | |
/// monitor at the moment. The hotkey will toggle the window; however, if for some reason this breaks, fullscreen | |
/// windows can be closed via Alt+F4 as long as the editor is not in play mode. | |
/// </summary> | |
/// <remarks> | |
/// Confirmed to work in Unity 2019 and 2020. May work in earlier and later versions. No promises. | |
/// </remarks> | |
public static class FullscreenGameView | |
{ | |
static readonly Type GameViewType = Type.GetType("UnityEditor.GameView,UnityEditor"); | |
static readonly PropertyInfo ShowToolbarProperty = GameViewType.GetProperty("showToolbar", BindingFlags.Instance | BindingFlags.NonPublic); | |
static readonly object False = false; // Only box once. This is a matter of principle. | |
static EditorWindow instance; | |
[MenuItem("Window/General/Game (Fullscreen) %#&2", priority = 2)] | |
public static void Toggle() | |
{ | |
if (GameViewType == null) | |
{ | |
Debug.LogError("GameView type not found."); | |
return; | |
} | |
if (ShowToolbarProperty == null) | |
{ | |
Debug.LogWarning("GameView.showToolbar property not found."); | |
} | |
if (instance != null) | |
{ | |
instance.Close(); | |
instance = null; | |
} | |
else | |
{ | |
instance = (EditorWindow) ScriptableObject.CreateInstance(GameViewType); | |
ShowToolbarProperty?.SetValue(instance, False); | |
var desktopResolution = new Vector2(Screen.currentResolution.width, Screen.currentResolution.height); | |
var fullscreenRect = new Rect(Vector2.zero, desktopResolution); | |
instance.ShowPopup(); | |
instance.position = fullscreenRect; | |
instance.Focus(); | |
} | |
} | |
} | |
#endif |
I'm using 2 monitors and when I use this script it extends the fullscreen partially to the other monitor.
- I'm using @josessin version but the same happens with the original one
- I have the resolution set to match my screen aspect ratio
- I start the full screen only after playmode is running
Any ideas?
I'm using 2 monitors and when I use this script it extends the fullscreen partially to the other monitor.
Any ideas?
@PalaNolho I had the same. Dividing the resolution by EditorGUIUtility.pixelsPerPoint worked for me.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi! thanks for this! I've just added same little checks to make sure the resolution is set automatically and to prevent entering in fullscreen mode if the app is not running, I've also included the @StevenLightning code, just in case