Beispiel #1
0
        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();
        }