void OnDisable() { Selection.selectionChanged -= OnSelectionChanged; #if UNITY_2019_1_OR_NEWER SceneView.duringSceneGui -= OnSceneGUI; #else SceneView.onSceneGUIDelegate -= OnSceneGUI; #endif Undo.undoRedoPerformed -= UndoRedoPerformed; //EditorApplication.hierarchyWindowItemOnGUI -= OnHierarchyWindowItemChanged; #if PROBUILDER_4_0_OR_NEWER if (ProBuilderBridge.ProBuilderExists()) { ProBuilderBridge.UnsubscribeToSelectModeChanged(OnProBuilderSelectModeChanged); } #endif // store local changes to brushSettings if (brushSettings != null) { var js = JsonUtility.ToJson(brushSettings, true); EditorPrefs.SetString(k_BrushSettingsPref, js); } // don't iterate here! FinalizeAndReset does that OnBrushExit(m_LastHoveredGameObject); FinalizeAndResetHovering(); PreviewsDatabase.UnloadCache(); }