- Home /
How to make resolution not go less than 1280x720?
Alright people, I need some help with this please :P
So I have this script which changes the resolution of the game. It´s like a popup list done in NGUI. Everything is cool and works, shows all the resolutions your pc could have. Now my problem is that: I don´t want the player to go less than 1280x720 in resolution, because that would screw up some important UI in game which can´t be fixed because I´ve been stupid enough to just make it NOT below 1280x720...
Here´s my script (written in C#):
using UnityEngine;
using System.Collections;
public class ScreenResolutionChange : MonoBehaviour {
public bool isFullscreen = true;
private UIPopupList popupList;
private Resolution[] resolutions;
private string[] resolutionMenuText;
public string selectedWidth;
public string selectedHeight;
public int HeightTeller;
void Start() {
popupList = GetComponent<UIPopupList>();
resolutions = Screen.resolutions;
resolutionMenuText = new string[resolutions.Length];
popupList.items.Clear();
for(int i = 0; i < resolutions.Length; i++) {
resolutionMenuText[i] = resolutions[i].width.ToString() + "x" + resolutions[i].height.ToString();
if(resolutionMenuText[i] != "1280x720") {
popupList.items.Add(resolutionMenuText[i]);
}
if(resolutionMenuText[i] == Screen.currentResolution.width.ToString() + "x" + Screen.currentResolution.height.ToString()) {
popupList.selection = resolutionMenuText[i];
}
}
}
void Update() {
string[] splitter = {"x"};
string[] curDimensions = popupList.selection.Split(splitter, System.StringSplitOptions.None);
if(curDimensions.Length == 2) {
selectedWidth = curDimensions[0];
selectedHeight = curDimensions[1];
}
HeightTeller = int.Parse(selectedHeight);
}
public void ApplyChanges() {
if((selectedWidth + "x" + selectedHeight) != (Screen.currentResolution.width.ToString() + "x" + Screen.currentResolution.height.ToString())) {
int w = int.Parse(selectedWidth);
int h = int.Parse(selectedHeight);
Screen.SetResolution(w, h, isFullscreen);
}
}
}
Thanks in advance smart people :D
Answer by Ejlersen · Aug 26, 2013 at 08:24 PM
If you have a list of all possible resolutions, then why not just remove all with a width less than 1280 and height less than 720, e.g.:
for (int i = 0; i < resolutions.Length; i++)
{
Resolution res = resolutions[i];
if (res.width < 1280 || res.height < 720)
continue;
string text = resolutions[i].width.ToString() + "x" + resolutions[i].height.ToString();
popupList.items.Add(text);
if (text == Screen.currentResolution.width.ToString() + "x" + Screen.currentResolution.height.ToString())
{
popupList.selection = popupList.items.Count - 1;
}
}
Thanks! That did the trick! $$anonymous$$uch obliged! :D
Your answer
Follow this Question
Related Questions
NGUI's UIRoot with custom height AND width? 0 Answers
Resolution Question (Android) 1 Answer
Retina Display NGUI 1 Answer
Adjust Viewport Locations When Going to Full Screen -1 Answers