Пример #1
0
    static void SnapToGrid(object obj)
    {
        SPData sPData = (SPData)obj;

        Undo.RecordObject(sPData.SplinePlus, "Spline snaped");
        SplinePlusEditorAPI.Snap(sPData);
    }
Пример #2
0
    public static void Display(SPData sPData)
    {
        var selectedNode = sPData.Node_Selected();

        if (selectedNode != null)
        {
            DrawSelectedNodeGizmos(sPData, selectedNode);
            SceneViewUI(sPData, selectedNode);
        }
        else  // if no node is added then force node adding on user
        {
            EditorGUIUtility.AddCursorRect(Camera.current.pixelRect, MouseCursor.ArrowPlus);
            sPData.User_Action = User_Actions.Add;
        }

        if (sPData.User_Action == User_Actions.NormalEdit)
        {
            SplinePlusEditorAPI.Node_Select(sPData);
            var dialogBoxState = SplinePlusEditorAPI.SliderDialogBox_Normal(sPData, selectedNode, -180, 180, "Node Normal");

            if (dialogBoxState == DialogBox.Close || dialogBoxState == DialogBox.Confirm)
            {
                sPData.User_Action = User_Actions.None;
            }
        }
        else if (sPData.User_Action == User_Actions.CoordinatesEdit)
        {
            SplinePlusEditorAPI.Node_Select(sPData);
            var dialogBoxState = SplinePlusEditorAPI.CoordinatesDialogBox(sPData);
            if (dialogBoxState == DialogBox.Close || dialogBoxState == DialogBox.Confirm)
            {
                sPData.User_Action = User_Actions.None;
            }
        }

        else if (sPData.User_Action == User_Actions.Add)
        {
            SplinePlusEditorAPI.Node_Add(sPData);
        }

        else
        {
            SplinePlusEditorAPI.Node_Select(sPData);
        }
    }
Пример #3
0
    public override void OnInspectorGUI()
    {
        // DrawDefaultInspector();
        if (GUI.Button(new Rect(EditorGUIUtility.currentViewWidth - 40, 2, 18, 18), Delete, GUIStyle.none))
        {
            if (EditorUtility.DisplayDialog("Confirm", "Are you sure you want to delete this modifier?", "Yes", "Cancel"))
            {
                DestroyImmediate(TubeMesh.MeshHolder);
                DestroyImmediate(TubeMesh);
            }
        }
        GUILayout.Space(20);


        EditorGUI.BeginChangeCheck();
        var flipHandles = EditorGUILayout.EnumPopup("Flip Faces", TubeMesh.FlipFaces);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(TubeMesh, "Flip faces value changed");
            TubeMesh.FlipFaces = (Switch)flipHandles;
            TubeMesh.DrawMesh();
        }

        EditorGUI.BeginChangeCheck();
        var twoSided = EditorGUILayout.EnumPopup("Two Sided", TubeMesh.TwoSided);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(TubeMesh, "Two sided value changed");
            TubeMesh.TwoSided = (Switch)twoSided;
            TubeMesh.DrawMesh();
        }

        EditorGUI.BeginChangeCheck();
        var radius = EditorGUILayout.FloatField("Radius", TubeMesh.Radius);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(TubeMesh, "Radius changed");
            TubeMesh.Radius = radius;
            TubeMesh.DrawMesh();
        }
        EditorGUI.BeginChangeCheck();
        var segments = EditorGUILayout.IntField("Segments", TubeMesh.Segments);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(TubeMesh, "Segments changed");
            if (segments < 1)
            {
                segments = 1;
            }
            TubeMesh.Segments = segments;
            TubeMesh.DrawMesh();
        }

        EditorGUI.BeginChangeCheck();
        var material = (Material)EditorGUILayout.ObjectField("Material", TubeMesh.Material, typeof(Material), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(TubeMesh, "materialchanged");
            TubeMesh.Material = material;
            TubeMesh.MeshRenderer.sharedMaterial = TubeMesh.Material;
        }
        EditorGUI.BeginChangeCheck();
        var uVRotation = EditorGUILayout.FloatField("Uv Rotation", TubeMesh.UVRotation);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(TubeMesh, "UV Rotation changed");
            TubeMesh.UVRotation = uVRotation;
            TubeMesh.DrawMesh();
        }

        if (GUILayout.Button("Save Prefab"))
        {
            SplinePlusEditorAPI.SavePrefab(TubeMesh.MeshHolder, "TubeMesh");
        }
    }
Пример #4
0
    public override void OnInspectorGUI()
    {
        // DrawDefaultInspector();
        if (GUI.Button(new Rect(EditorGUIUtility.currentViewWidth - 40, 2, 18, 18), Delete, GUIStyle.none))
        {
            if (EditorUtility.DisplayDialog("Confirm", "Are you sure you want to delete this modifier?", "Yes", "Cancel"))
            {
                DestroyImmediate(PlaneMesh.MeshHolder);
                DestroyImmediate(PlaneMesh);
            }
        }
        GUILayout.Space(20);

        EditorGUI.BeginChangeCheck();
        var flipFaces = EditorGUILayout.EnumPopup("Flip Faces", PlaneMesh.FlipFaces);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(PlaneMesh, "Flip faces value changed");
            PlaneMesh.FlipFaces = (Switch)flipFaces;
            PlaneMesh.DrawMesh();
        }

        EditorGUI.BeginChangeCheck();
        var twoSided = EditorGUILayout.EnumPopup("Two Sided", PlaneMesh.TwoSided);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(PlaneMesh, "Two sided value changed");
            PlaneMesh.TwoSided = (Switch)twoSided;
            PlaneMesh.DrawMesh();
        }

        EditorGUILayout.BeginHorizontal();
        EditorGUI.BeginChangeCheck();
        var MaxWidth = EditorGUILayout.FloatField("Width", PlaneMesh.Width);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(PlaneMesh, "Max width changed");
            PlaneMesh.Width = MaxWidth;
            PlaneMesh.DrawMesh();
        }
        EditorGUI.BeginChangeCheck();
        var axis = EditorGUILayout.EnumPopup(PlaneMesh.SPData.SplineSettings.ReferenceAxis, GUILayout.Width(60));

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(PlaneMesh.SPData.SplinePlus, "PlaneMesh axis value changed");
            PlaneMesh.SPData.SplineSettings.ReferenceAxis = (RefAxis)axis;

            PlaneMesh.DrawMesh();
        }
        EditorGUILayout.EndHorizontal();

        EditorGUI.BeginChangeCheck();
        var material = (Material)EditorGUILayout.ObjectField("Material", PlaneMesh.Material, typeof(Material), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(PlaneMesh, "materialchanged");
            PlaneMesh.Material = material;
            PlaneMesh.MeshRenderer.sharedMaterial = PlaneMesh.Material;
        }

        EditorGUI.BeginChangeCheck();
        var uVRotation = EditorGUILayout.FloatField("Uv Rotation", PlaneMesh.UVRotation);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(PlaneMesh, "UV Rotation changed");
            PlaneMesh.UVRotation = uVRotation;
            PlaneMesh.DrawMesh();
        }

        if (GUILayout.Button("Save Prefab"))
        {
            SplinePlusEditorAPI.SavePrefab(PlaneMesh.MeshHolder, "PlaneMesh");
        }
    }