Use this class to get a list of supported screen resolutions, change the current resolution, or hide/show the system mouse pointer.
When you launch your application, Unity immediately needs to use settings like the screen's resolution and full-screen mode to render the first frame before any custom code starts to run. This means Unity doesn't initially use your code to configure these settings. Instead, Unity gets the values of these settings from command line arguments, Player settings, or from PlayerPrefs.
Priority of initial startup settings
Unity determines the initial startup settings based on the following order of priority (highest to lowest):
-
Command line arguments: If you specify a setting's value via command line, Unity prioritizes and uses that setting.
-
Changed Player settings: If you don't use the command line to configure the setting, and you modify the setting's value in the Player settings, Unity uses those values. For example, in the Player settings, if you change Fullscreen Mode, Default Screen Width, or Default Screen Height, Unity will use those values to change the screen's full-screen mode and resolution at startup.
-
Stored PlayerPrefs: If you don't specify a setting's value via command line or Player settings, Unity checks if the setting is stored in PlayerPrefs, and uses the setting if found.
-
Default Player settings: Otherwise, Unity uses the original default Player settings as a fallback.
You can also implement your own logic, but Unity will only apply your logic after it starts to execute code.
Persistence of Screen settings
During gameplay, if the user changes the Screen settings, the settings will persist between launches. Unity writes these settings to PlayerPrefs, which saves these settings and stores them differently depending on the platform. Unity saves the following settings to PlayerPrefs:
- Full-screen mode
- Resolution (width and height)
- Display and game window position
Unity saves the settings to PlayerPrefs when any of the following situations occur:
- The application or user moves the window.
- The full-screen mode changes, either when you call Screen.SetResolution, or the user presses Alt + Enter on Windows or Option + Enter on Mac.
- The render resolution changes, such as when you call Screen.SetResolution, the user drags the window to resize it, or the user moves the window to a display with a different DPI.