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?