public void ChangeMouseSensivityCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <MouseSensivityControlController>();
            settingController.Initialize();

            // Act
            float newValue = 80f;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "mouseSensitivity stored value mismatch");
            var povSpeed = Mathf.Lerp(MouseSensivityControlController.FIRST_PERSON_MIN_SPEED, MouseSensivityControlController.FIRST_PERSON_MAX_SPEED, newValue);

            UnityEngine.Assertions.Assert.AreApproximatelyEqual(povSpeed, povCamera.m_HorizontalAxis.m_MaxSpeed, "povCamera.m_HorizontalAxis.m_MaxSpeed value mismatch");
            UnityEngine.Assertions.Assert.AreApproximatelyEqual(povSpeed, povCamera.m_VerticalAxis.m_MaxSpeed, "povCamera.m_VerticalAxis.m_MaxSpeed value mismatch");
            UnityEngine.Assertions.Assert.AreApproximatelyEqual(
                Mathf.Lerp(MouseSensivityControlController.THIRD_PERSON_X_MIN_SPEED, MouseSensivityControlController.THIRD_PERSON_X_MAX_SPEED, newValue),
                freeLookCamera.m_XAxis.m_MaxSpeed,
                "freeLookCamera.m_XAxis.m_MaxSpeed value mismatch");
            UnityEngine.Assertions.Assert.AreApproximatelyEqual(
                Mathf.Lerp(MouseSensivityControlController.THIRD_PERSON_Y_MIN_SPEED, MouseSensivityControlController.THIRD_PERSON_Y_MAX_SPEED, newValue),
                freeLookCamera.m_YAxis.m_MaxSpeed,
                "freeLookCamera.m_YAxis.m_MaxSpeed value mismatch");
        }
Example #2
0
        public virtual void Initialize(SettingsControlModel controlConfig, SettingsControlController settingsControlController)
        {
            this.controlConfig             = controlConfig;
            this.settingsControlController = settingsControlController;
            this.settingsControlController.Initialize();
            title.text = controlConfig.title;
            betaIndicator.SetActive(controlConfig.isBeta);
            originalTitleColor             = title.color;
            originalLabelColor             = valueLabels.Count > 0 ? valueLabels[0].color : Color.white;
            originalHandlerColor           = handleImages.Count > 0 ? handleImages[0].color : Color.white;
            originalControlBackgroundAlpha = controlBackgroundCanvasGroups.Count > 0 ? controlBackgroundCanvasGroups[0].alpha : 1f;

            foreach (BooleanVariable flag in controlConfig.flagsThatDisableMe)
            {
                flag.OnChange += OnAnyDisableFlagChange;
                OnAnyDisableFlagChange(flag.Get(), false);
            }

            foreach (BooleanVariable flag in controlConfig.flagsThatDeactivateMe)
            {
                flag.OnChange += OnAnyDeactivationFlagChange;
                OnAnyDeactivationFlagChange(flag.Get(), false);
            }

            RefreshControl();

            Settings.i.OnGeneralSettingsChanged += OnGeneralSettingsChanged;
            Settings.i.OnQualitySettingsChanged += OnQualitySettingsChanged;
            Settings.i.OnResetAllSettings       += OnResetSettingsControl;
        }
Example #3
0
 public void AddControl(
     ISettingsControlView newControl,
     SettingsControlController newControlController,
     SettingsControlModel controlConfig)
 {
     newControl.Initialize(controlConfig, newControlController);
     controls.Add(newControl);
 }
        public void ChangeBaseResolutionCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <BaseResolutionControlController>();
            settingController.Initialize();

            // Act
            DCL.SettingsData.QualitySettings.BaseResolution newValue = DCL.SettingsData.QualitySettings.BaseResolution.BaseRes_1080;
            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual((int)newValue, settingController.GetStoredValue(), "baseResolution stored value mismatch");
        }
        public void ChangeAllowVoiceChatCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <AllowVoiceChatControlController>();
            settingController.Initialize();

            // Act
            int newValue = (int)DCL.SettingsData.GeneralSettings.VoiceChatAllow.FRIENDS_ONLY;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "voiceChatAllow stored value mismatch");
        }
        public void ChangeDetailObjectCullingSizeCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <DetailObjectCullingSizeControlController>();
            settingController.Initialize();

            // Act
            float newValue = 20f;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "detailObjectCullingThreshold stored value mismatch");
        }
        public void ChangeVoiceChatVolumeCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <VoiceChatVolumeControlController>();
            settingController.Initialize();

            // Act
            float newValue = 90f;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "voiceChatVolume stored value mismatch");
        }
        public void ChangeFPSLimitCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <FPSLimitControlController>();
            settingController.Initialize();

            // Act
            bool newValue = true;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "fpsCap stored value mismatch");
        }
        public void ChangeSoftShadowsCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <SoftShadowsControlController>();
            settingController.Initialize();

            // Act
            bool newValue = true;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "softShadows stored value mismatch");
            Assert.AreEqual(newValue, lwrpaSoftShadowField.GetValue(urpAsset), "lwrpaShadowResolutionField value mismatch");
        }
        public void ChangeShadowDistanceCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <ShadowDistanceControlController>();
            settingController.Initialize();

            // Act
            float newValue = 50f;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "shadowDistance stored value mismatch");
            Assert.AreEqual(newValue, urpAsset.shadowDistance, "shadowDistance value mismatch");
        }
        public void ChangeRenderingScaleCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <RenderingScaleControlController>();
            settingController.Initialize();

            // Act
            float newValue = 0.5f;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "renderScale stored value mismatch");
            Assert.AreEqual(newValue, urpAsset.renderScale, "renderScale value mismatch");
        }
        public void ChangeMuteSoundCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <MuteSoundControlController>();
            settingController.Initialize();

            // Act
            bool newValue = true;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "muteSound stored value mismatch");
            Assert.AreEqual(newValue ? 1f : 0f, AudioListener.volume, "sfxVolume value mismatch");
        }
        public void ChangeDetailObjectCullingCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <DetailObjectCullingControlController>();
            settingController.Initialize();

            // Act
            bool newValue = true;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "enableDetailObjectCulling stored value mismatch");
            Assert.AreNotEqual(newValue, CommonSettingsScriptableObjects.detailObjectCullingDisabled.Get());
        }
        public void ChangeShadowsCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <ShadowControlController>();
            settingController.Initialize();

            // Act
            bool newValue = true;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "shadows stored value mismatch");
            Assert.AreEqual(newValue, lwrpaShadowField.GetValue(urpAsset), "lwrpaShadowField value mismatch");
            Assert.AreNotEqual(newValue, CommonSettingsScriptableObjects.shadowsDisabled.Get());
        }
        public void ChangeAntialiasingChatCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <AntiAliasingControlController>();
            settingController.Initialize();

            // Act
            float newValue = (float)MsaaQuality._8x;

            settingController.UpdateSetting(newValue);

            // Assert
            int antiAliasingValue = 1 << (int)newValue;

            Assert.AreEqual((antiAliasingValue >> 2) + 1, settingController.GetStoredValue(), "antiAliasing stored value mismatch");
            Assert.AreEqual(antiAliasingValue, urpAsset.msaaSampleCount, "antiAliasing mismatch");
        }
        public void ChangeDrawDistanceCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <DrawDistanceControlController>();
            settingController.Initialize();

            // Act
            float newValue = 50f;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "cameraDrawDistance stored value mismatch");
            Assert.AreEqual(freeLookCamera.m_Lens.FarClipPlane, newValue, "3rd person camera FarClipPlane value mismatch");
            Assert.AreEqual(firstPersonCamera.m_Lens.FarClipPlane, newValue, "1st person camera FarClipPlane value mismatch");
            Assert.AreEqual(RenderSettings.fogEndDistance, newValue, "fogEndDistance value mismatch");
            Assert.AreEqual(RenderSettings.fogStartDistance, newValue * 0.8f, "fogStartDistance value mismatch");
        }
        public void ChangeBloomCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <BloomControlController>();
            settingController.Initialize();

            // Act
            bool newValue = true;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "bloom stored value mismatch");
            if (postProcessVolume.profile.TryGet <Bloom>(out Bloom bloom))
            {
                Assert.AreEqual(newValue, bloom.active, "bloom mismatch");
            }
        }
        public void ChangeShadowresolutionCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <ShadowResolutionControlController>();
            settingController.Initialize();

            // Act
            int newValue = 4;

            settingController.UpdateSetting(newValue);

            // Assert
            UnityEngine.Rendering.Universal.ShadowResolution newValueFormatted = (UnityEngine.Rendering.Universal.ShadowResolution)(256 << newValue);
            Assert.AreEqual(
                (int)Mathf.Log((int)newValueFormatted, 2) - 8,
                settingController.GetStoredValue(),
                "shadowResolution stored value mismatch");
            Assert.AreEqual(newValueFormatted, lwrpaShadowResolutionField.GetValue(urpAsset), "lwrpaShadowResolutionField value mismatch");
        }
        public override void Initialize(SettingsControlModel controlConfig, SettingsControlController settingsControlController)
        {
            this.sliderControlConfig = (SliderControlModel)controlConfig;
            slider.maxValue          = this.sliderControlConfig.sliderMaxValue;
            slider.minValue          = this.sliderControlConfig.sliderMinValue;
            slider.wholeNumbers      = this.sliderControlConfig.sliderWholeNumbers;

            sliderController = (SliderSettingsControlController)settingsControlController;
            sliderController.OnIndicatorLabelChange += OverrideIndicatorLabel;

            base.Initialize(controlConfig, sliderController);
            OverrideIndicatorLabel(slider.value.ToString());
            sliderController.UpdateSetting(this.sliderControlConfig.storeValueAsNormalized ? RemapSliderValueTo01(slider.value) : slider.value);

            slider.onValueChanged.AddListener(sliderValue =>
            {
                OverrideIndicatorLabel(sliderValue.ToString());
                ApplySetting(this.sliderControlConfig.storeValueAsNormalized ? RemapSliderValueTo01(sliderValue) : sliderValue);
            });
        }
        public void ChangeColorGradingCorrectly()
        {
            // Arrange
            settingController = ScriptableObject.CreateInstance <ColorGradingControlController>();
            settingController.Initialize();

            // Act
            bool newValue = true;

            settingController.UpdateSetting(newValue);

            // Assert
            Assert.AreEqual(newValue, settingController.GetStoredValue(), "colorGrading stored value mismatch");
            Tonemapping toneMapping;

            if (QualitySettingsReferences.i.postProcessVolume.profile.TryGet <Tonemapping>(out toneMapping))
            {
                Assert.AreEqual(newValue, toneMapping.active, "bloom mismatch");
            }
        }
Example #21
0
        public override void Initialize(SettingsControlModel controlConfig, SettingsControlController settingsControlController)
        {
            sliderController = (SliderSettingsControlController)settingsControlController;
            sliderController.OnIndicatorLabelChange += OverrideIndicatorLabel;

            this.sliderControlConfig = (SliderControlModel)controlConfig;
            slider.maxValue          = this.sliderControlConfig.sliderMaxValue;
            slider.minValue          = this.sliderControlConfig.sliderMinValue;
            slider.wholeNumbers      = false;

            base.Initialize(controlConfig, sliderController);
            OverrideIndicatorLabel(slider.value.ToString());
            sliderController.UpdateSetting(this.sliderControlConfig.storeValueAsNormalized ? RemapSliderValueTo01(slider.value) : slider.value);

            slider.onValueChanged.AddListener(sliderValue =>
            {
                // https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings
                // FX = floating point with X precision digits
                string stringFormat = sliderControlConfig.wholeNumbers ? "F0" : "F1";

                OverrideIndicatorLabel(sliderValue.ToString(stringFormat));
                ApplySetting(this.sliderControlConfig.storeValueAsNormalized ? RemapSliderValueTo01(sliderValue) : sliderValue);
            });
        }