diff --git a/com.unity.render-pipelines.core/Editor/Debugging/DebugState.cs b/com.unity.render-pipelines.core/Editor/Debugging/DebugState.cs index dbc0a4e7937..3ad6d26f5f8 100644 --- a/com.unity.render-pipelines.core/Editor/Debugging/DebugState.cs +++ b/com.unity.render-pipelines.core/Editor/Debugging/DebugState.cs @@ -150,15 +150,18 @@ public sealed class DebugStateEnum : DebugState, ISerializationCallbackRece public override void SetValue(object value, DebugUI.IValueField field) { m_EnumField = field as DebugUI.EnumField; - this.value = (int)field.ValidateValue(value); + base.SetValue(value, field); } void UpdateValue() { if (m_EnumField != null) { - m_EnumField.SetValue(value); - m_EnumField.setIndex?.Invoke(value); + base.SetValue(value, m_EnumField); + // There might be cases that the value does not map the index, look for the correct index + var newCurrentIndex = Array.IndexOf(m_EnumField.enumValues, value); + if (m_EnumField.currentIndex != newCurrentIndex) + m_EnumField.currentIndex = newCurrentIndex; } }