Fullscreen in lower resolutions problem
Hello, I'm making a game having some problems with my options menu. I followed Brackeys video initially but I have changed things here and there to make it work to my liking.
When i select one of the lower resolutions and enter fullscreen the game flips out. It starts flickering and a similar window of the game pops up on my second monitor and at last it ends up being in normal 1920x1080, but still having the lower resolution selected in the dropdown. I do not understand what is happening or why.
Here's a link of a recording of my screen when it happens, it isn't very clear. If necessary I could record from my phone and upload a video for clarity.
Here is my OptionsMenu script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;
using TMPro;
public class OptionsMenu : MonoBehaviour
{
public AudioMixer audioMixer;
public TMP_Dropdown resolutionDropdown;
public TMP_Dropdown qualityDropdown;
public Toggle fullscreenToggle;
Resolution[] resolutions;
public GameObject mainMenu;
void Start()
{
resolutions = Screen.resolutions;
resolutionDropdown.ClearOptions();
List<string> options = new List<string>();
int currentResolutionIndex = 0;
for (int i = 0; i < resolutions.Length; i++)
{
string option = resolutions[i].width + " x " + resolutions[i].height + " " + resolutions[i].refreshRate + " hz";
options.Add(option);
if (resolutions[i].width == Screen.width && resolutions[i].height == Screen.height)
{
currentResolutionIndex = i;
}
}
resolutionDropdown.AddOptions(options);
if (resolutionDropdown.value != currentResolutionIndex)
{
resolutionDropdown.SetValueWithoutNotify(currentResolutionIndex);
resolutionDropdown.RefreshShownValue();
}
if (qualityDropdown.value != QualitySettings.GetQualityLevel()
)
{
qualityDropdown.SetValueWithoutNotify(QualitySettings.GetQualityLevel());
qualityDropdown.RefreshShownValue();
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
gameObject.SetActive(false);
mainMenu.SetActive(true);
}
}
public void SetResolution (int resolutionIndex)
{
Resolution resolution = resolutions[resolutionIndex];
Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
print("Resolution was changed");
}
public void SetVolume(float volume)
{
audioMixer.SetFloat("Volume", volume);
//print("Volume = " + volume);
}
public void SetQuality(int qualityIndex)
{
QualitySettings.SetQualityLevel(qualityIndex);
//print("Quality was changed");
}
public void SetFullScreen(bool isFullscreen)
{
Screen.fullScreen = isFullscreen;
print("Fullscreen was turned on or off");
}
public void CheckFullscreen()
{
fullscreenToggle.SetIsOnWithoutNotify(Screen.fullScreen);
}
}
Your answer
Follow this Question
Related Questions
Equivalent of "Mac Fullscreen Mode: Fullscreen Window" for Windows users? 2 Answers
Disable fullscreen for webgl 4 Answers
All UI elements break when setting resolution through script. [please help] 0 Answers
Resolution messed up after switching between fullscreen modes. 1 Answer
UI Resizing out of screen 0 Answers