Пример #1
0
        // TODO: put somewhere else
        internal static void ConvertIntoBrushesButton(Rect rect, SerializedObject serializedObject)
        {
            rect.height = 22;
            bool singular = false;
            bool multiple = false;

            foreach (var targetObject in serializedObject.targetObjects)
            {
                var node = targetObject as ChiselGeneratorComponent;
                if (!node)
                {
                    continue;
                }
                var topTreeNode = node.TopTreeNode;
                if (!topTreeNode.Valid)
                {
                    continue;
                }
                var count = topTreeNode.Count;
                singular = (count <= 1) || singular;
                multiple = (count > 1) || multiple;
            }
            if (multiple)
            {
                if (!GUI.Button(rect, convertToBrushesContent))
                {
                    return;
                }
            }
            else
            if (singular)
            {
                if (!GUI.Button(rect, convertToBrushContent))
                {
                    return;
                }
            }
            else
            {
                return;
            }

            bool modified = false;

            foreach (var targetObject in serializedObject.targetObjects)
            {
                var node = targetObject as ChiselGeneratorComponent;
                if (!node)
                {
                    continue;
                }

                modified = ConvertToBrushesButton.ConvertToBrushes(node) || modified;
            }

            if (modified)
            {
                EditorGUIUtility.ExitGUI();
            }
        }
Пример #2
0
        public void Commit(ChiselGeneratorComponent generatorComponent, bool createAsBrush)
        {
            var newGameObject = generatorComponent.gameObject;

            if (!newGameObject)
            {
                Cancel();
                return;
            }

            if (createAsBrush)
            {
                ConvertToBrushesButton.ConvertToBrushes(generatorComponent);
                newGameObject.name = ChiselBrushComponent.kNodeTypeName;
            }

            IsGenerating = false;
            UnityEditor.Selection.selectionChanged -= OnDelayedSelectionChanged;
            UnityEditor.Selection.selectionChanged += OnDelayedSelectionChanged;
            UnityEditor.Selection.activeGameObject  = newGameObject;
            Undo.IncrementCurrentGroup();
            Reset();
        }