Screen.SetScreenResolution breaks the view
I followed a nice tutorial by Sebastian Lague to make a shooter game and one of the latest features is the possibility of choosing 3 different screen resolutions in the game options. Selecting fullscreen mode is also available.
The method that is being called to set the resolutions is:
public void SetScreenResolution(int i)
{
if (resolutionToggles[i].isOn)
{
activeScreenResIndex = i;
float aspectRatio = 16 / 9f;
Screen.SetResolution(screenWidths[i], (int)(screenWidths[i] / aspectRatio), false);
PlayerPrefs.SetInt("screen res index", activeScreenResIndex);
PlayerPrefs.Save();
}
}
The arguments passed to this method when firing the on click button event are 0, 1 and 2, corresponding to the indices of the screeWidths array containing the resolution widths 960, 1280 and 1920. So everything seems to be in order.
When clicking these buttons to change the resolution the window size is indeed changed but the actual "thing" the screen is showing is resized terribly: if you change to a lower resolution (or from fullscreen to windowed) the view is gone and all you see is the plain background color of the menu. If you change to a higher resolution the view is amplified but cropped and the actual place where you click is different than where the game is interpreting the click.
I imported the original code of the person who did the tutorial and I can confirm I have this problem as well. He used Mac and Unity 5.3 for the tutorials and I am using Windows and Unity 5.2.
Is this a known issue? How can I fix it?
Your answer
Follow this Question
Related Questions
Gray screen when trying to open unity. 7 Answers
Unity windowed mode size is different on different screen resolutions 1 Answer
Lighting Window does not appear 2 Answers
Can I submit a project on this forum, or via email, for someone to fix the Display issues?!? 0 Answers
Set Game Resolution For Every Screen 0 Answers