using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
public class SettingManager : MonoBehaviour
{
public Toggle FullScreenCntr;
public Dropdown ResolutionCntr;
public Dropdown TextureQualityCntr;
public Dropdown AntiAliasingCntr;
public Dropdown vSyncCntr;
public Slider MusicVolumeCntr;
public Button buttonApply;
public Resolution[] resolutions;
public GameSettings gameSettings;
public AudioSource musicSource;
void OnEnable ()
{
gameSettings = new GameSettings ();
resolutions = Screen.resolutions;
foreach (Resolution resolution in resolutions)
{
ResolutionCntr.options.Add (new Dropdown.OptionData (resolution.ToString ()));
}
LoadSettings ();
// Subscribe Events
FullScreenCntr.onValueChanged.AddListener (delegate {
OnFullScreenToggle ();
});
ResolutionCntr.onValueChanged.AddListener (delegate {
OnResolutionChange ();
});
TextureQualityCntr.onValueChanged.AddListener (delegate {
OnTextureQualityChange ();
});
AntiAliasingCntr.onValueChanged.AddListener (delegate {
OnAntialiasingChange ();
});
vSyncCntr.onValueChanged.AddListener (delegate {
OnVSyncChange ();
});
MusicVolumeCntr.onValueChanged.AddListener (delegate {
OnMusicVolumeChange ();
});
buttonApply.onClick.AddListener (delegate {
OnApplyButtonClick ();
});
}
public void OnFullScreenToggle ()
{
gameSettings.fullscreen = Screen.fullScreen = FullScreenCntr.isOn;
}
public void OnResolutionChange ()
{
Screen.SetResolution (resolutions[ResolutionCntr.value].width, resolutions[ResolutionCntr.value].height, Screen.fullScreen);
gameSettings.resolutionIndex = ResolutionCntr.value;
}
public void OnTextureQualityChange ()
{
QualitySettings.masterTextureLimit = gameSettings.textureQuality = TextureQualityCntr.value;
}
public void OnAntialiasingChange ()
{
QualitySettings.antiAliasing = gameSettings.antialiasing = (int)Mathf.Pow (2, AntiAliasingCntr.value);
}
public void OnVSyncChange ()
{
QualitySettings.vSyncCount = gameSettings.vSync = vSyncCntr.value;
}
public void OnMusicVolumeChange ()
{
musicSource.volume = gameSettings.musicVolume = MusicVolumeCntr.value;
}
//public void SaveSettings ()
//{
// string JsonData = JsonUtility.ToJson (gameSettings, true);
//}
public void OnApplyButtonClick()
{
//SaveSettings ();
}
public void LoadSettings()
{
gameSettings = JsonUtility.FromJson<GameSettings> (File.ReadAllText(Application.persistentDataPath + "/Config/Preferences.json"));
MusicVolumeCntr.value = gameSettings.musicVolume;
AntiAliasingCntr.value = gameSettings.antialiasing;
vSyncCntr.value = gameSettings.vSync;
TextureQualityCntr.value = gameSettings.textureQuality;
ResolutionCntr.value = gameSettings.resolutionIndex;
FullScreenCntr.isOn = gameSettings.fullscreen;
Screen.fullScreen = gameSettings.fullscreen;
ResolutionCntr.RefreshShownValue ();
}
}
Товарищи, требуется помощь. Возникает ошибка NullReferenceExeption
Текст ошибки: NullReferenceException: Object reference not set to an instance of an object
SettingManager.OnEnable () (at Assets/Utilities/Game Settings/Scripts/SettingManager.cs:27)
Подскажите, быть может я не правильно подписался на событие?