using UnityEditorInternal; namespace UnityEditor.Rendering { class AdvancedPropertiesObserver { [InitializeOnLoadMethod] static void SubscribeToAdvancedPropertiesChanges() { AdvancedProperties.advancedPreferenceChanged += OnShowAdvancedPropertiesChanged; } static void OnShowAdvancedPropertiesChanged(bool newValue) { if (newValue) { AdvancedProperties.ResetHighlight(); EditorApplication.update += RepaintUntilAnimFinish; } } static void RepaintUntilAnimFinish() { if (AdvancedProperties.IsHighlightActive()) InternalEditorUtility.RepaintAllViews(); else EditorApplication.update -= RepaintUntilAnimFinish; } } }