Beispiel #1
0
        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.");
                }
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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();
        }