void ChangeQuality(int modifier) { var newQuality = Mathf.Clamp(m_QualitySettingsDataProvider.qualityLevel + modifier, 0, m_MaxQualityLevel); if (newQuality == m_QualitySettingsDataProvider.qualityLevel) { return; } SetQualitySettingsAction.SetQualitySettingsData settingsData = new SetQualitySettingsAction.SetQualitySettingsData(); settingsData.isAutomatic = m_QualitySettingsDataProvider.isAutomatic; settingsData.fpsThresholdQualityDecrease = m_QualitySettingsDataProvider.fpsThresholdQualityDecrease; settingsData.fpsThresholdQualityIncrease = m_QualitySettingsDataProvider.fpsThresholdQualityIncrease; settingsData.lastQualityChangeTimestamp = Time.unscaledTime; settingsData.qualityLevel = newQuality; Dispatcher.Dispatch(SetQualitySettingsAction.From(settingsData)); }
void OnQualityDropdownChanged(int value) { var qualityStateData = m_QualitySettingsSelector.GetValue(); SetQualitySettingsAction.SetQualitySettingsData settingsData = new SetQualitySettingsAction.SetQualitySettingsData(); settingsData.fpsThresholdQualityDecrease = qualityStateData.fpsThresholdQualityDecrease; settingsData.fpsThresholdQualityIncrease = qualityStateData.fpsThresholdQualityIncrease; settingsData.lastQualityChangeTimestamp = qualityStateData.lastQualityChangeTimestamp; if (value == 0) { // keep the current quality setting when swapping to automatic settingsData.isAutomatic = true; settingsData.qualityLevel = qualityStateData.qualityLevel; } else { settingsData.isAutomatic = false; // decrement value because Automatic option is at index 0 settingsData.qualityLevel = value - 1; } Dispatcher.Dispatch(SetQualitySettingsAction.From(settingsData)); }