Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


SetResolution

Switches the screen resolution and refresh rate if supported.
Read time 5 minutesLast updated 6 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule

SetResolution(int, int, FullScreenMode, RefreshRate)

Switches the screen resolution and refresh rate if supported.
public static void SetResolution(int width, int height, FullScreenMode fullscreenMode, RefreshRate preferredRefreshRate)

Parameters

width


height


fullscreenMode


preferredRefreshRate

Remarks

A
width
by
height
resolution is used. If no matching resolution is supported, the closest one is set.
If the
preferredRefreshRate
parameter is specified but no matching refresh rate is supported, the highest available is set. Changing the 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.
Usage details:
  • 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 change is applied at the end of the current frame and not immediately.
  • In the Editor, it affects only the Game view's resolution.
Examples:
using UnityEngine;public class ExampleScript : MonoBehaviour{ void Start() { // Switch to 640 x 480 full-screen Screen.SetResolution(640, 480, true); }}
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 }); }}
using UnityEngine;public class ExampleScript : MonoBehaviour{ void Start() { // Switch to 800 x 600 windowed Screen.SetResolution(800, 600, false); }}
Additional Resources: Screen.resolutions property.

SetResolution(int, int, FullScreenMode)

Switches the screen resolution and refresh rate if supported.
public static void SetResolution(int width, int height, FullScreenMode fullscreenMode)

Parameters

width


height


fullscreenMode

Remarks

A
width
by
height
resolution is used. If no matching resolution is supported, the closest one is set.
If the
preferredRefreshRate
parameter is specified but no matching refresh rate is supported, the highest available is set. Changing the 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.
Usage details:
  • 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 change is applied at the end of the current frame and not immediately.
  • In the Editor, it affects only the Game view's resolution.
Examples:
using UnityEngine;public class ExampleScript : MonoBehaviour{ void Start() { // Switch to 640 x 480 full-screen Screen.SetResolution(640, 480, true); }}
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 }); }}
using UnityEngine;public class ExampleScript : MonoBehaviour{ void Start() { // Switch to 800 x 600 windowed Screen.SetResolution(800, 600, false); }}
Additional Resources: Screen.resolutions property.

SetResolution(int, int, bool)

Switches the screen resolution and refresh rate if supported.
public static void SetResolution(int width, int height, bool fullscreen)

Parameters

width


height


fullscreen

Remarks

A
width
by
height
resolution is used. If no matching resolution is supported, the closest one is set.
If the
preferredRefreshRate
parameter is specified but no matching refresh rate is supported, the highest available is set. Changing the 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.
Usage details:
  • 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 change is applied at the end of the current frame and not immediately.
  • In the Editor, it affects only the Game view's resolution.
Examples:
using UnityEngine;public class ExampleScript : MonoBehaviour{ void Start() { // Switch to 640 x 480 full-screen Screen.SetResolution(640, 480, true); }}
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 }); }}
using UnityEngine;public class ExampleScript : MonoBehaviour{ void Start() { // Switch to 800 x 600 windowed Screen.SetResolution(800, 600, false); }}
Additional Resources: Screen.resolutions property.