How to get native screen resolution


is it possible to get the native resolution of the screen?

And is it possible to get the resolution of a certain screen (two monitors of different type, horizontally spanned), lets say the right monitor (Unity game is fullscreen on both monitors)?

At least I need the aspect ratio of the native resolution...

CRT multiscan displays don't really have a "native" resolution, so this question does not really Apply there.

For LCD screens, as Duck said, typically the highest resolution the screen is capable of is the native resolution. You can get a list of supported resolutions using Screen.resolutions, however, this is not always guaranteed to actually contain the highest available resolution, if the user has set his desktop resolution to something less then the highest possible.

This has mostly historic reasons - in the days of VGA monitors, often the graphics cards would support higher resolutions then the screens, and sometimes the communication between the two, to find out which combinations are supported by both did not quite work correctly. For this reason, we would not actually list resolutions higher then the current selected desktop resolution, to avoid switching a system into a screen mode it does not support. I am not sure if this is the case on all platforms, though, and in general, the highest Resolution reported by Screens.resolutions is the closest you will get to getting a screen's "native" resolution.

If you want the resolution the screen is currently set to, you can get that with:



Screen.SetResolution (Screen.currentResolution.width, Screen.currentResolution.height, true);

Will set the view to fullscreen at without changing the resolution of you screen.

I think you need to use Display.main.systemWidth and Display.main.systemHeight if you want to know the native resolution of the monitor.

Screen.currentResolution ONLY gives the desktop resolution if you are in WINDOWS mode. it DOES NOT give the desktop resolution if you are in FULLSCREEN mode. Ridiculous but true.

You can get the list of supported resolutions using Screen.resolutions.

I have a feeling that the highest supported resolution is very likely to be the native resolution if the screen is an LCD, however I'm not 100% sure of that.

I'm also not sure what that list will look like in the case of a multi-monitor set up.