diff --git a/com.unity.render-pipelines.high-definition/CHANGELOG.md b/com.unity.render-pipelines.high-definition/CHANGELOG.md index d1826d9112c..82913a7987c 100644 --- a/com.unity.render-pipelines.high-definition/CHANGELOG.md +++ b/com.unity.render-pipelines.high-definition/CHANGELOG.md @@ -71,6 +71,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed issue with white flash when enabling SSR. - Fix inconsistencies with transparent motion vectors and opaque by allowing camera only transparent motion vectors. - Fixed issue with depth pyramid generation and dynamic resolution. +- Fixed a serialization issue, preventing quality level parameters to undo/redo and update scene view on change. ### Changed - Shadowmask and realtime reflection probe property are hide in Quality settings diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/ScalableSettingLevelParameterEditor.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/ScalableSettingLevelParameterEditor.cs index a41b0d596e9..de006eccc07 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/ScalableSettingLevelParameterEditor.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/ScalableSettingLevelParameterEditor.cs @@ -22,13 +22,14 @@ public override bool OnGUI(SerializedDataParameter parameter, GUIContent title) rect.y += 2; rect.width -= 3; - o.levelAndOverride = SerializedScalableSettingValueUI.LevelFieldGUI( + var levelAndOverride = SerializedScalableSettingValueUI.LevelFieldGUI( rect, title, ScalableSettingSchema.GetSchemaOrNull(ScalableSettingSchemaId.With3Levels), level, useOverride ); + value.intValue = ScalableSettingLevelParameter.GetScalableSettingLevelParameterValue(levelAndOverride.level, levelAndOverride.useOverride); return true; } } diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/GlobalPostProcessingQualitySettings.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/GlobalPostProcessingQualitySettings.cs index 5bee02315d9..f77d6923019 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/GlobalPostProcessingQualitySettings.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/GlobalPostProcessingQualitySettings.cs @@ -33,6 +33,11 @@ public ScalableSettingLevelParameter(int level, bool useOverride, bool overrideS } + internal static int GetScalableSettingLevelParameterValue(int level, bool useOverride) + { + return useOverride ? LevelCount : (int)level; + } + /// /// Level and Override. /// @@ -42,7 +47,7 @@ public ScalableSettingLevelParameter(int level, bool useOverride, bool overrideS set { var (level, useOverride) = value; - this.value = useOverride ? LevelCount : (int)level; + this.value = GetScalableSettingLevelParameterValue(level, useOverride); } } }