public static SettingsProvider CreateMyCustomSettingsProvider() { var keys = CSGKeysPreferenceWindow.GetKeys(); var keywords = new HashSet <string>(); foreach (var key in keys) { var pieces = key.name.Split(' ', '/'); foreach (var piece in pieces) { keywords.Add(piece); } } var provider = new SettingsProvider("Project/RealtimeCSG", SettingsScope.Project) { label = "Realtime CSG", guiHandler = (searchContext) => { GUILayout.Label("Options", EditorStyles.boldLabel); GUILayout.Space(10); CSGOptionsPreferenceWindow.PreferenceWindow(); GUILayout.Space(30); GUILayout.Label("Keyboard settings", EditorStyles.boldLabel); GUILayout.Space(10); CSGKeysPreferenceWindow.PreferenceWindow(); }, keywords = new[] { "Tool-Tip", "ToolTip", "Tool-Tips", "ToolTips", "Snap", "Circle", "Sphere", "Lock", "Texture", "Surface" } }; return(provider); }
void Initialize() { if (initialized) { return; } CSGKeysPreferenceWindow.ReadKeys(); initialized = true; CSGSceneManagerRedirector.Interface = new CSGSceneManagerInstance(); Selection.selectionChanged -= OnSelectionChanged; Selection.selectionChanged += OnSelectionChanged; EditorApplication.update -= OnFirstUpdate; EditorApplication.update += OnFirstUpdate; #if UNITY_2018_1_OR_NEWER EditorApplication.hierarchyChanged -= OnHierarchyWindowChanged; EditorApplication.hierarchyChanged += OnHierarchyWindowChanged; #else EditorApplication.hierarchyWindowChanged -= OnHierarchyWindowChanged; EditorApplication.hierarchyWindowChanged += OnHierarchyWindowChanged; #endif EditorApplication.hierarchyWindowItemOnGUI -= HierarchyWindowItemGUI.OnHierarchyWindowItemOnGUI; EditorApplication.hierarchyWindowItemOnGUI += HierarchyWindowItemGUI.OnHierarchyWindowItemOnGUI; UnityCompilerDefineManager.UpdateUnityDefines(); }
void Initialize() { if (initialized) { return; } CSGKeysPreferenceWindow.ReadKeys(); initialized = true; CSGSceneManagerRedirector.Interface = new CSGSceneManagerInstance(); Selection.selectionChanged -= OnSelectionChanged; Selection.selectionChanged += OnSelectionChanged; EditorApplication.update -= OnFirstUpdate; EditorApplication.update += OnFirstUpdate; #if UNITY_2018_1_OR_NEWER EditorApplication.hierarchyChanged -= OnHierarchyWindowChanged; EditorApplication.hierarchyChanged += OnHierarchyWindowChanged; #else EditorApplication.hierarchyWindowChanged -= OnHierarchyWindowChanged; EditorApplication.hierarchyWindowChanged += OnHierarchyWindowChanged; #endif #if UNITY_2021_2_OR_NEWER // SceneManagement.PrefabStage was moved out of experimental in 2021.2 UnityEditor.SceneManagement.PrefabStage.prefabSaving += OnPrefabSaving; #else #if UNITY_2018_3_OR_NEWER // SceneManagement.PrefabStage was introduced in 2018.3 with nested prefabs UnityEditor.Experimental.SceneManagement.PrefabStage.prefabSaving += OnPrefabSaving; #endif #endif EditorApplication.hierarchyWindowItemOnGUI -= HierarchyWindowItemGUI.OnHierarchyWindowItemOnGUI; EditorApplication.hierarchyWindowItemOnGUI += HierarchyWindowItemGUI.OnHierarchyWindowItemOnGUI; UnityCompilerDefineManager.UpdateUnityDefines(); }