Example #1
0
        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;
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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();
            }
        }
Example #5
0
        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;
            }
        }
Example #7
0
 private void OnProBuilderToolModeChanged(ProBuilderToolMode mode)
 {
     m_commands           = GetCommands().ToArray();
     m_commandsList.Items = m_commands;
 }
Example #8
0
        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();
 }