public void LoadOptions() { XmlSerializer serializer = new XmlSerializer(typeof(DisplaySettingsSave)); using (FileStream stream = new FileStream(GetSavePath(fileName), FileMode.OpenOrCreate)) { try { Save = (DisplaySettingsSave)serializer.Deserialize(stream); //Display ScreenModeDropdown.value = Save.DisplayScreenMode; ResolutionDropdown.value = Save.DisplayResoultion; FPSCapDropdown.value = Save.DisplayFPSCap; VSyncDropdown.value = Save.DisplayVSync; FieldOfViewSlider.value = Save.FieldOfView; GraphicsPresetDropdown.value = Save.GraphicsPreset; AntiAliasingDropdown.value = Save.AntiAliasing; SunShaftDropdown.value = Save.SunShaft; ColorGradingModeDropdown.value = Save.ColorGradingMode; SaturationSlider.value = GameMath.Remap(Save.Saturation, 10, 30, 0, 100); ContrastSlider.value = GameMath.Remap(Save.Contrast, 5, 25, 0, 100); Apply(); } catch (Exception) { stream.Close(); Apply(); SaveOptions(); Debug.Log("Could not open settings."); } } }
public void Setup(DisplaySettingsSave save) { Save = save; volume = FindObjectOfType <PostProcessVolume>(); layer = FindObjectOfType <PostProcessLayer>(); // Screen Mode Dropdown ScreenModeDropdown.ClearOptions(); for (int i = 0; i < Enum.GetValues(typeof(FullScreenMode)).Length; i++) { ScreenModeDropdown.options.Add(new TMP_Dropdown.OptionData(Enum.GetNames(typeof(FullScreenMode))[i])); //if (Screen.fullScreenMode == (FullScreenMode)i) // ScreenModeDropdown.value = i; } // Resolution Dropdown ResolutionDropdown.ClearOptions(); resolutions.Clear(); List <Vector2> resolutionsCheck = new List <Vector2>(); for (int i = Screen.resolutions.Length - 1; i > 0; i--) { var res = new Vector3(Screen.resolutions[i].width, Screen.resolutions[i].height, Screen.resolutions[i].refreshRate); if (!resolutionsCheck.Contains(res)) { resolutionsCheck.Add(res); resolutions.Add(res); ResolutionDropdown.options.Add(new TMP_Dropdown.OptionData(Screen.resolutions[i].width + " x " + Screen.resolutions[i].height)); continue; } } ResolutionDropdown.value = 0; // FPS Cap FPSCapDropdown.ClearOptions(); List <TMP_Dropdown.OptionData> fpsOptions = new List <TMP_Dropdown.OptionData>() { new TMP_Dropdown.OptionData("300"), new TMP_Dropdown.OptionData("240"), new TMP_Dropdown.OptionData("144"), new TMP_Dropdown.OptionData("120"), new TMP_Dropdown.OptionData("90"), new TMP_Dropdown.OptionData("60"), }; FPSCapDropdown.AddOptions(fpsOptions); // VSync VSyncDropdown.ClearOptions(); List <TMP_Dropdown.OptionData> vsyncOptions = new List <TMP_Dropdown.OptionData>() { new TMP_Dropdown.OptionData("On"), new TMP_Dropdown.OptionData("Off") }; VSyncDropdown.AddOptions(vsyncOptions); VSyncDropdown.value = 1; // Graphics Preset GraphicsPresetDropdown.ClearOptions(); for (int i = 0; i < QualitySettings.names.Length; i++) { GraphicsPresetDropdown.options.Add(new TMP_Dropdown.OptionData(QualitySettings.names[i])); } // Anti Aliasing AntiAliasingDropdown.ClearOptions(); List <TMP_Dropdown.OptionData> antiAliasingOptions = new List <TMP_Dropdown.OptionData>() { new TMP_Dropdown.OptionData("None"), new TMP_Dropdown.OptionData("FXAA"), new TMP_Dropdown.OptionData("SMAA"), new TMP_Dropdown.OptionData("TAA") }; AntiAliasingDropdown.AddOptions(antiAliasingOptions); // Sun Shafts SunShaftDropdown.ClearOptions(); List <TMP_Dropdown.OptionData> sunShaftOptions = new List <TMP_Dropdown.OptionData>() { new TMP_Dropdown.OptionData("On"), new TMP_Dropdown.OptionData("Off") }; SunShaftDropdown.AddOptions(sunShaftOptions); // Color Grading Mode ColorGradingModeDropdown.ClearOptions(); List <TMP_Dropdown.OptionData> colorGradingModeOptions = new List <TMP_Dropdown.OptionData>() { new TMP_Dropdown.OptionData("Low Dynamic Range"), new TMP_Dropdown.OptionData("High Dynamic Range") }; ColorGradingModeDropdown.AddOptions(colorGradingModeOptions); ColorGradingModeDropdown.value = 1; }
private void Start() { // Disable feedback text FeedbackText.SetText(string.Empty); FeedbackText.transform.parent.gameObject.SetActive(false); //Creates an empty settings file to load. This is because it will return null reference exceptions if it's not done first. DisplaySave = new DisplaySettingsSave(); SoundSave = new SoundSettingsSave(); ControlSave = new ControlSettingsSave(); InputSave = new InputSettingsSave(); // Setup buttons ButtonDisplay.interactable = false; // Set the display to be interactable by default ButtonDisplay.onClick.AddListener(delegate { PanelDisplay.SetActive(true); PanelSound.SetActive(false); PanelControls.SetActive(false); ButtonDisplay.interactable = false; ButtonSound.interactable = true; ButtonControls.interactable = true; }); ButtonSound.onClick.AddListener(delegate { PanelDisplay.SetActive(false); PanelSound.SetActive(true); PanelControls.SetActive(false); ButtonDisplay.interactable = true; ButtonSound.interactable = false; ButtonControls.interactable = true; }); ButtonControls.onClick.AddListener(delegate { PanelDisplay.SetActive(false); PanelSound.SetActive(false); PanelControls.SetActive(true); ButtonDisplay.interactable = true; ButtonSound.interactable = true; ButtonControls.interactable = false; }); // Get components DisplaySettings = PanelDisplay.GetComponent <DisplaySettings>(); SoundSettings = PanelSound.GetComponent <SoundSettings>(); ControlSettings = PanelControls.GetComponent <ControlSettings>(); InputSettings = PanelControls.GetComponent <InputSettings>(); // Set the default screen PanelDisplay.SetActive(true); PanelSound.SetActive(false); PanelControls.SetActive(false); // Setup Options LoadSettings(); }