Exemplo n.º 1
0
    void ChangeEditionType(int EditionType, Object target)
    {
        Grid grid = (Grid)target;

        GUIUtility.hotControl = 0;
        GridEditorUtility.DeselectAll();
        grid.EditionType = EditionType;
    }
Exemplo n.º 2
0
    void SelectionKeyboard()            // Mesh/Graph Editing is called here
    {
        if (Event.current.shift)
        {
            if (Event.current.character == 'Z' || Event.current.character == 'z')
            {
                GridEditorUtility.DeselectAll();
                GridEditorUtility.EditingGrid(target);
            }
            else
            {
                GridEditorUtility.Selecting(target);
            }

            UpdateDragBox();
        }

        else
        {
            //CheckInput();
            GridEditorUtility.EditingGrid(target);
            PathUtility.EditingGraph(target);
        }
    }
Exemplo n.º 3
0
    public override void OnInspectorGUI()
    {
        grid.Update();

        GUILayout.Space(10f);

        GUILayout.BeginHorizontal();
        if (GUILayout.Button(new GUIContent("<-", "Undo"), EditorStyles.miniButtonLeft, GUILayout.Width(25f)))
        {
            if (GridEditorUtility.MeshUndo.Count > 0)
            {
                VertexUndo undo = GridEditorUtility.MeshUndo.Pop();

                foreach (int n in undo.vertices)
                {
                    GridEditorUtility.vertices[n].y -= undo.added;
                }
                foreach (int n in undo.faces)
                {
                    GridEditorUtility.SmoothFace(n);
                }

                GridEditorUtility.MeshRedo.Push(undo);

                gridObject.gameObject.GetComponent <MeshFilter>().sharedMesh.vertices = GridEditorUtility.vertices;

                gridObject.gameObject.GetComponent <MeshCollider>().sharedMesh =
                    gridObject.gameObject.GetComponent <MeshFilter>().sharedMesh;

                SceneView.RepaintAll();
            }
        }

        if (GUILayout.Button(new GUIContent("->", "Redo"), EditorStyles.miniButtonRight, GUILayout.Width(25f)))
        {
            if (GridEditorUtility.MeshRedo.Count > 0)
            {
                VertexUndo undo = GridEditorUtility.MeshRedo.Pop();

                foreach (int n in undo.vertices)
                {
                    GridEditorUtility.vertices[n].y += undo.added;
                }
                foreach (int n in undo.faces)
                {
                    GridEditorUtility.SmoothFace(n);
                }

                GridEditorUtility.MeshUndo.Push(undo);

                gridObject.gameObject.GetComponent <MeshFilter>().sharedMesh.vertices = GridEditorUtility.vertices;

                gridObject.gameObject.GetComponent <MeshCollider>().sharedMesh =
                    gridObject.gameObject.GetComponent <MeshFilter>().sharedMesh;

                SceneView.RepaintAll();
            }
        }
        GUILayout.EndHorizontal();


        GUILayout.Space(10f);


        GUILayout.BeginHorizontal();
        if (GUILayout.Toggle((gridObject.Edition == 1 && gridObject.EditionType == 1)? true : false, "1 1", "Button"))
        {
            gridObject.Edition     = 1;
            gridObject.EditionType = 1;
            SceneView.RepaintAll();
        }

        if (GUILayout.Toggle((gridObject.Edition == 2 && gridObject.EditionType == 1)? true : false, "2 1", "Button"))
        {
            gridObject.Edition     = 2;
            gridObject.EditionType = 1;
            SceneView.RepaintAll();
        }

        if (GUILayout.Toggle((gridObject.Edition == 3 && gridObject.EditionType == 1)? true : false, "3 1", "Button"))
        {
            gridObject.Edition     = 3;
            gridObject.EditionType = 1;
            SceneView.RepaintAll();
        }
        GUILayout.EndHorizontal();


        GUILayout.BeginHorizontal();
        if (GUILayout.Toggle((gridObject.Edition == 1 && gridObject.EditionType == 2)? true : false, "1 2", "Button"))
        {
            gridObject.Edition     = 1;
            gridObject.EditionType = 2;
            SceneView.RepaintAll();
        }

        if (GUILayout.Toggle((gridObject.Edition == 2 && gridObject.EditionType == 2)? true : false, "2 2", "Button"))
        {
            gridObject.Edition     = 2;
            gridObject.EditionType = 2;
            SceneView.RepaintAll();
        }

        if (GUILayout.Toggle((gridObject.Edition == 3 && gridObject.EditionType == 2)? true : false, "3 2", "Button"))
        {
            gridObject.Edition     = 3;
            gridObject.EditionType = 2;
            SceneView.RepaintAll();
        }
        GUILayout.EndHorizontal();


        GUILayout.Space(10f);


        GUILayout.BeginHorizontal();
        if (GUILayout.Toggle((gridObject.Edition == 4)? true : false, "4", "Button"))
        {
            gridObject.Edition = 4;
            SceneView.RepaintAll();
        }

        if (GUILayout.Toggle((gridObject.Edition == 5)? true : false, "5", "Button"))
        {
            gridObject.Edition = 5;
            SceneView.RepaintAll();
        }
        GUILayout.EndHorizontal();



        EditorGUILayout.PropertyField(X);
        EditorGUILayout.PropertyField(Z);

        if (grid.ApplyModifiedProperties())
        {
            GridEditorUtility.NewGrid(target);
            GridEditorUtility.UpdateGridMesh(target);
        }

        EditorGUILayout.PropertyField(snap);

        if (grid.ApplyModifiedProperties())
        {
            SceneView.RepaintAll();
            GridEditorUtility.DeselectAll();
        }
    }