Unity - Scripting API: Screen.SetResolution
Success!
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
Submission failed
For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
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
fullscreenparameter controls theSYSTEM_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, andSYSTEM_UI_FLAG_FULLSCREENflags using View.setSystemUiVisibility method. -
Android 11 and newer: When
fullscreenis true,WindowInsetsController.hide(WindowInsets.Type.navigationBars())is called and whenfullscreenis 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.
Another example:
Another example: