private void OnModeChanged(ProBuilderToolMode oldMode) { switch (m_tool.Mode) { case ProBuilderToolMode.Object: m_objectToggle.isOn = true; break; case ProBuilderToolMode.Vertex: m_vetexToggle.isOn = true; break; case ProBuilderToolMode.Edge: m_edgeToggle.isOn = true; break; case ProBuilderToolMode.Face: m_faceToggle.isOn = true; break; case ProBuilderToolMode.PolyShape: m_objectToggle.isOn = false; m_vetexToggle.isOn = false; m_edgeToggle.isOn = false; m_faceToggle.isOn = false; break; } }
private void OnModeChanged(ProBuilderToolMode oldMode) { if (m_tool.Mode == ProBuilderToolMode.PolyShape) { m_polyShape = m_rte.Selection.activeGameObject.GetComponent <PBPolyShape>(); PolyShapeUpdatePivot(); m_polyShape.IsEditing = true; SetLayer(m_polyShape.gameObject); if (m_polyShape.Stage > 0) { m_rte.Selection.Enabled = false; } MeshEditorState oldState = m_polyShape.GetState(false); m_polyShape.Refresh(); MeshEditorState newState = m_polyShape.GetState(false); RecordState(oldState, newState); } else if (oldMode == ProBuilderToolMode.PolyShape) { m_polyShape.IsEditing = false; m_rte.Selection.Enabled = true; m_rte.Selection.activeGameObject = m_polyShape.gameObject; } }
private void OnModeChanged(ProBuilderToolMode oldMode) { if (m_tool.Mode == ProBuilderToolMode.PolyShape) { PolyShape = m_rte.Selection.activeGameObject.GetComponent <PBPolyShape>(); PolyShapeUpdatePivot(PolyShape); PolyShape.IsEditing = true; SetLayer(PolyShape.gameObject); } else if (oldMode == ProBuilderToolMode.PolyShape) { if (PolyShape != null) { PolyShape.IsEditing = false; } if (m_exposeToEditor != null && !m_exposeToEditor.MarkAsDestroyed) { bool wasEnabled = m_rte.Undo.Enabled; m_rte.Undo.Enabled = false; m_rte.Selection.activeObject = PolyShape.gameObject; PolyShapeUpdatePivot(PolyShape); m_rte.Undo.Enabled = wasEnabled; } PolyShape = null; } }
private void OnModeChanged(ProBuilderToolMode oldMode) { ProBuilderToolMode mode = m_proBuilderTool.Mode; if (mode != ProBuilderToolMode.Edge && mode != ProBuilderToolMode.Vertex && mode != ProBuilderToolMode.Face) { ClearSmoothGroups(); UpdateEditorsPanel(); } }
private void OnModeChanged(ProBuilderToolMode oldMode) { switch (m_tool.Mode) { case ProBuilderToolMode.Vertex: foreach (ManualUVSelection selection in m_uvEditor.Selection) { ManualUVRenderer uvRenderer = m_meshToRenderer[selection.Mesh]; uvRenderer.Mode = ManualUVRenderer.RenderMode.Vertex; uvRenderer.Refresh(false, false); OnUVSelectionChanged(selection); } break; case ProBuilderToolMode.Face: foreach (ManualUVSelection selection in m_uvEditor.Selection) { ManualUVRenderer uvRenderer = m_meshToRenderer[selection.Mesh]; uvRenderer.Mode = ManualUVRenderer.RenderMode.Face; uvRenderer.Refresh(false, false); OnUVSelectionChanged(selection); } break; default: foreach (ManualUVSelection selection in m_uvEditor.Selection) { ManualUVRenderer uvRenderer = m_meshToRenderer[selection.Mesh]; uvRenderer.Mode = ManualUVRenderer.RenderMode.Edge; uvRenderer.Refresh(false, false); OnUVSelectionChanged(selection); } break; } m_uvEditor.RefreshPivotPoint(); }
private void OnModeChanged(ProBuilderToolMode oldMode) { if (m_toggleGroup != null) { m_toggleGroup.allowSwitchOff = false; } switch (m_tool.Mode) { case ProBuilderToolMode.Object: m_objectToggle.isOn = true; break; case ProBuilderToolMode.Vertex: m_vetexToggle.isOn = true; break; case ProBuilderToolMode.Edge: m_edgeToggle.isOn = true; break; case ProBuilderToolMode.Face: m_faceToggle.isOn = true; break; case ProBuilderToolMode.PolyShape: if (m_toggleGroup != null) { m_toggleGroup.allowSwitchOff = true; } m_objectToggle.isOn = false; m_vetexToggle.isOn = false; m_edgeToggle.isOn = false; m_faceToggle.isOn = false; break; } }
private void OnProBuilderToolModeChanged(ProBuilderToolMode mode) { m_commands = GetCommands().ToArray(); m_commandsList.Items = m_commands; }
private void OnCurrentModeChanged(ProBuilderToolMode oldMode) { IMeshEditor disabledEditor = m_meshEditors[(int)oldMode]; IMeshEditor enabledEditor = m_meshEditors[(int)m_mode]; GameObject target = null; if (disabledEditor != null) { target = disabledEditor.Target; MeshSelection disabledSelection = disabledEditor.ClearSelection(); MeshSelection selection = null; if (disabledSelection != null) { selection = new MeshSelection(disabledSelection); } if (selection != null) { if (oldMode == ProBuilderToolMode.Face) { if (m_mode == ProBuilderToolMode.Vertex) { selection.FacesToVertices(true); enabledEditor.ApplySelection(selection); } else if (m_mode == ProBuilderToolMode.Edge) { selection.FacesToEdges(true); enabledEditor.ApplySelection(selection); } } else if (oldMode == ProBuilderToolMode.Edge) { if (m_mode == ProBuilderToolMode.Vertex) { selection.EdgesToVertices(true); enabledEditor.ApplySelection(selection); } else if (m_mode == ProBuilderToolMode.Face) { selection.EdgesToFaces(true); enabledEditor.ApplySelection(selection); if (!selection.HasFaces) { m_rte.Selection.activeObject = target; } } } else if (oldMode == ProBuilderToolMode.Vertex) { if (m_mode == ProBuilderToolMode.Face) { selection.VerticesToFaces(true); enabledEditor.ApplySelection(selection); if (!selection.HasFaces) { m_rte.Selection.activeObject = target; } } else if (m_mode == ProBuilderToolMode.Edge) { selection.VerticesToEdges(true); enabledEditor.ApplySelection(selection); if (!selection.HasEdges) { m_rte.Selection.activeObject = target; } } } if (enabledEditor != null && m_rte.Selection.activeObject != m_pivot) { GameObject[] gameObjects = m_rte.Selection.gameObjects; if (gameObjects != null) { enabledEditor.ApplySelection(new MeshSelection(gameObjects)); } } } else { m_rte.Selection.activeObject = target; } if (selection != null) { UndoRedoCallback redo = record => { if (enabledEditor != null) { enabledEditor.ApplySelection(selection); m_pivot.position = enabledEditor.Position; m_pivot.rotation = GetPivotRotation(enabledEditor); OnSelectionChanged(); } return(true); }; UndoRedoCallback undo = record => { if (disabledEditor != null) { disabledEditor.RollbackSelection(disabledSelection); m_pivot.position = disabledEditor.Position; m_pivot.rotation = GetPivotRotation(disabledEditor); OnSelectionChanged(); } return(true); }; m_rte.Undo.CreateRecord(redo, undo); } } else { if (enabledEditor != null) { GameObject[] gameObjects = m_rte.Selection.gameObjects; if (gameObjects != null) { enabledEditor.ApplySelection(new MeshSelection(gameObjects)); OnSelectionChanged(); } } } if (oldMode == ProBuilderToolMode.Object) { SetCanSelect(false); if (disabledEditor != null) { if (disabledEditor.HasSelection) { m_rte.Selection.activeObject = m_pivot.gameObject; } disabledEditor.CenterMode = m_rte.Tools.PivotMode == RuntimePivotMode.Center; } } else if (Mode == ProBuilderToolMode.Object) { SetCanSelect(true); if (m_rte.Selection.activeGameObject == m_pivot.gameObject) { if (disabledEditor != null) { m_rte.Selection.activeObject = target; } else { m_rte.Selection.activeObject = null; } } } if (enabledEditor != null) { m_pivot.position = enabledEditor.Position; m_pivot.rotation = GetPivotRotation(enabledEditor); } }
private void OnModeChanged(ProBuilderToolMode obj) { RefreshSelectionAndPivotPoint(); }