when i select the the dropdown value to "high" which is index value 2
then playerprefs doesnt save it
lastquality stays at 0
i even cleared all player prefs
public Dropdown Qualities;
public List qualityNames = new List();
private int lastQuality;
void Start(){
Qualities.onValueChanged.AddListener(delegate {
SaveSettingsData();
});
Debug.Log(lastQuality);
foreach (string name in QualitySettings.names)
qualityNames.Add(name);
lastQuality = PlayerPrefs.GetInt("Quality"); // retrieve last quality from PlayerPrefs
Qualities.value = lastQuality; // set the value of the dropdown to the retrieved value
Qualities.AddOptions(qualityNames);
GetSettingsData();
}
private void GetSettingsData()
{
lastQuality = PlayerPrefs.GetInt("Quality");
Qualities.value = lastQuality;
Qualities.captionText.text = qualityNames[lastQuality];
}
public void SaveSettingsData()
{
int index = Qualities.value;
if (index != lastQuality)
{
QualitySettings.SetQualityLevel(index);
PlayerPrefs.SetInt("Quality", index);
PlayerPrefs.Save();
// Update lastQuality with the newly selected quality level
lastQuality = index;
}
}
↧