Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в коде сохранения настроек для игры на unity

Илья Григорьев Ученик (97), открыт 2 недели назад
Выдаёт такую ошибку:
NullReferenceException: Object reference not set to an instance of an object
Settings.Load Settings ( System.Int 32 current Resolution Index) (at Assets/options/Settings.cs:102)
Settings.Start () (at Assets/options/Settings.cs:36)
Что с этим делать? Заранее спасибо
Вот этот элемент кода :
public void SaveSettings()
{
PlayerPrefs.SetInt("QualitySettingPreference",
qualityDropdown.value);
PlayerPrefs.SetInt("ResolutionPreference",
resolutionDropdown.value);
PlayerPrefs.SetInt("FullscreenPreference",
System.Convert.ToInt32(Screen.fullScreen));
PlayerPrefs.SetFloat("VolumePreference",
currentVolume);
}

public void LoadSettings(int currentResolutionIndex)
{
if (PlayerPrefs.HasKey("QualitySettingPreference"))
qualityDropdown.value =
PlayerPrefs.GetInt("QualitySettingPreference");
else
qualityDropdown.value = 3;
if (PlayerPrefs.HasKey("ResolutionPreference"))
resolutionDropdown.value =
PlayerPrefs.GetInt("ResolutionPreference");
else
resolutionDropdown.value = currentResolutionIndex;
if (PlayerPrefs.HasKey("FullscreenPreference"))
Screen.fullScreen =
System.Convert.ToBoolean(PlayerPrefs.GetInt("FullscreenPreference"));
else
Screen.fullScreen = true;
if (PlayerPrefs.HasKey("VolumePreference"))
volumeSlider.value =
PlayerPrefs.GetFloat("VolumePreference");
else
volumeSlider.value =
PlayerPrefs.GetFloat("VolumePreference");
}
}
1 ответ
hj vfy Ученик (107) 1 неделю назад
Ошибка “NullReferenceException: Object reference not set to an instance of an object” возникает, когда вы пытаетесь получить доступ к объекту, который имеет значение null. Это означает, что объект не был правильно инициализирован или присвоен.

В вашем случае ошибка возникает в строке 102 файла Settings.cs в функции LoadSettings(int currentResolutionIndex):

Settings.LoadSettings( System.Int 32 currentResolutionIndex) (at Assets/options/Settings.cs:102)

Вероятно, объект Settings равен null, когда вызывается функция LoadSettings(). Это может произойти, если объект Settings не был правильно инициализирован в конструкторе или если ссылка на него была потеряна в другом месте кода.

Чтобы исправить ошибку, вам нужно убедиться, что объект Settings должным образом инициализирован и на него есть ссылка, когда вы вызываете функцию LoadSettings().

Также обратите внимание на ошибку в имени метода: в C# имена методов пишутся с заглавной буквы, поэтому правильное название метода - LoadSettings.
Похожие вопросы