Why when changing resolution while game running using the exe built file everything is too blurry ?

The default resolution is 1920x1080 and the ui elements are sharp and fine. Once I changed the resolution to 640x480 but it’s the same on other resolutions either everything get blurry and the buttons are not responding all I can click on is the RESOLUTION dropdown and change the resolution and if I will change it back to the defalut 1920x1080 then everything will be looking sharp again and I will be able to click on the buttons and change all other ui’s.

How can I fix it so on any resolution it will looks sharp and also will respond ?

This is how it looks like on the default 1920x1080 :

This is my Main Menu hierarchy :

And this is the script that attached to the Canvas :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;

public class SettingsMenu : MonoBehaviour
{
   public AudioMixer audioMixer;
   public Text volumeInPercentages;
   public Dropdown resolutionDropDown;

   [SerializeField]
   private Slider _volumeSlider;
   [SerializeField]
   private Dropdown _dropDownQuality;

   private Resolution[] resolutions;

   private 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.ToString() + " Hz";
           options.Add(option);

           if (resolutions[i].width == Screen.currentResolution.width &&
               resolutions[i].height == Screen.currentResolution.height)
           {
               currentResolutionIndex = i;
           }
       }

       resolutionDropDown.AddOptions(options);
       resolutionDropDown.value = currentResolutionIndex;
       resolutionDropDown.RefreshShownValue();
   }

   public void SetVolume()
   {
       float volume = _volumeSlider.value;
       Debug.Log("Volume " + volume);
       audioMixer.SetFloat("MusicVol", Mathf.Log10(volume) * 20);
       volumeInPercentages.text = Mathf.Round(volume * 100).ToString() + " %";
   }

   public void SetQuality()
   {
       int qualityIndex = _dropDownQuality.value;
       QualitySettings.SetQualityLevel(qualityIndex);
   }

   public void SetFullScreen()
   {
       Screen.fullScreen = !Screen.fullScreen;
   }

   public void SetResolution()
   {
       Resolution resolution = resolutions[resolutionDropDown.value];
       Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
   }
}

Same Problem

Are you using TMP?

Please test to see if you get the same results using the latest release of the TMP package which are: Version 1.5.6 for Unity 2018.4, version 2.1.6 for Unity 2019.4 and version 3.0.6 for Unity 2020.x.

If you still get the same results, switch to using one of the SSD variants of the TMP shaders. Those shaders are located with the other ones in the TMP Essential Resources. They have the suffix SSD in their names.