// 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(); } }
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(); }