I am setting the Screen resolution for the Unity MacOS Desktop build to 2500 x 1440 using
Screen.SetResolution(2500, 1440, false/true);
Yet, when I compile and run the build in the editor or as a standalone player, the application logs -
Screen.currentResolution to -
3360 x 2100 @ 60Hz
I have set the player build settings to the same config as was in the script.
I have also tried deleting .plist files to force the player to override the screen resolution.
My dev environment -
MacOS Monterey 12.6.4
Has anyone run into a similar issue before?
On macOS, full screen is always the macOS full screen mode. This means that the desktop resolution stays whatever you have set in your system settings so yo can quickly switch between applications.
Unity still changes the internal framebuffer to the resolution you have set via Screen.SetResolution. It will then only get upscaled to whatever the desktop resolution is.
The reason you get a strange 3360 x 2100 is because that’s the resolution of macOS’s internal framebuffer resolution. You might have set up a “retina” resolution that isn’t exactly 2x on the display. So macOS renders your desktop at 3360x2100 and then downsamples it to 2560x1440 or whatever your native screen resolution is.
So the short answer is: if you want a different native resolution, you need to set it in macOS.