// Start is called before the first frame update void Start() { pauseToggle.onValueChanged.AddListener(onPauseToggleChanged); logToggle.onValueChanged.AddListener(onLogToggleChanged); for (int i = 0; i < settings.Length; i++) { SteamPunkSetting setting = (SteamPunkSetting)i; settings[i] = PlayerPrefs.GetInt(prefName + setting) == 1; SetSetting(setting, settings[i]); } }
void SetSetting(SteamPunkSetting setting, bool val) { PlayerPrefs.SetInt(prefName + setting, val ? 1 : 0); settings[(int)setting] = val; if (onSettingChanged != null) { onSettingChanged(setting, val); } switch (setting) { case SteamPunkSetting.PauseWhileOpen: pauseToggle.isOn = val; break; case SteamPunkSetting.ShowUnityLog: logToggle.isOn = val; break; } }
void OnSettingChanged(SteamPunkSetting setting, bool val) { switch (setting) { case SteamPunkSetting.PauseWhileOpen: if (IsConsoleOpen) { Time.timeScale = val ? 0 : 1; } break; case SteamPunkSetting.ShowUnityLog: if (val) { Application.logMessageReceived += logMessageReceived; } else { Application.logMessageReceived -= logMessageReceived; } break; } }
public bool GetSettingValue(SteamPunkSetting setting) { return(settings[(int)setting]); }