Screen.SetResolution

Declaration

public static void SetResolution(int width, int height, bool fullscreen);

Declaration

public static void SetResolution(int width, int height, FullScreenMode fullscreenMode);

Declaration

public static void SetResolution(int width, int height, FullScreenMode fullscreenMode, RefreshRate preferredRefreshRate);

Description

Switches the screen resolution.

A width by height resolution is used. If no matching resolution is supported, the closest one is used.

If preferredRefreshRate is 0 (default) Unity switches to the highest refresh rate that the monitor supports.
If preferredRefreshRate is not 0 Unity uses it if the monitor supports it, otherwise it chooses the highest supported one. Changing refresh rate is only supported when using exclusive full-screen mode.

Android:

  • Android 10 and older: The fullscreen parameter controls the SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_HIDE_NAVIGATION, and SYSTEM_UI_FLAG_FULLSCREEN flags using View.setSystemUiVisibility method.
  • Android 11 and newer: When fullscreen is true, WindowInsetsController.hide(WindowInsets.Type.navigationBars()) is called and when fullscreen is false, WindowInsetsController.show(WindowInsets.Type.navigationBars()) is called. For more information, refer to Android documentation on WindowInsetsController.

To set a specific full-screen mode on a desktop platform, use the method overload that accepts the FullScreenMode parameter. Exclusive full-screen mode is only supported on Windows standalone player.

If you use multi-display, you can only use Screen.SetResolution to set the resolution of the primary screen.

A resolution switch does not happen immediately; it happens when the current frame is finished.

using UnityEngine;

public class ExampleScript : MonoBehaviour { void Start() { // Switch to 640 x 480 full-screen Screen.SetResolution(640, 480, true); } }

Another example:

using UnityEngine;

public class ExampleScript : MonoBehaviour { void Start() { // Switch to 640 x 480 full-screen at 60 hz Screen.SetResolution(640, 480, FullScreenMode.ExclusiveFullScreen, new RefreshRate() { numerator = 60, denominator = 1 }); } }

Another example:

using UnityEngine;

public class ExampleScript : MonoBehaviour { void Start() { // Switch to 800 x 600 windowed Screen.SetResolution(800, 600, false); } }

Additional resources: resolutions property.


Did you find this page useful? Please give it a rating: