For my cross-platform 2d computer game, I’ve been trying to determine how to best handle multiple resolutions with an in-game menu in Unity.
In order to support retina screens in OS X, I discovered that I need to set
Mac Fullscreen Mode
to CaptureDisplay
in the player settings. When I do that, Screen.Resolutions reports
640x480
720x450
800x600
840x525
1024x640
1024x768
1280x800
1440x900
1680x1050
1920x1200
2048x1280
2560x1600
2880x1800
However, when trying to set the screen to some of these resolutions (for example, 720x450), I got an error in the dev console: "Could not find requested mode."
On the other hand, in FullscreenWindow
mode, the listed resolutions are
640x480
720x450
800x600
840x525
1024x640
1024x768
1280x800
1440x900
1680x1050
I can switch to all of these resolutions, but doing so stretches the screen contents to cover the entire display rather than supporting the chosen aspect ratio with black bars like in CaptureDisplay
mode, so CaptureDisplay
mode seems to be a better choice than FullscreenWindow
mode overall (after hacking it so that command-tab switches to windowed mode rather than blocking input).
My question: how can I get an accurate listing of available resolutions in Capture Display
mode on OSX (I’m using a late 2013 Retina 15 inch Macbook pro running OS X 10.9.3, but I obviously want my game to run properly on every machine possible)?
Alternatively, what is the best way, from a user experience standpoint, to user-selectable resolutions, ideally with the ability to select the maximum resolution available - 2880x1800 in this case?
Do I need to write a native plugin to do this?