示例#1
0
 private static void CREATE_plane()
 {
     EditorGUILayout.BeginVertical();
     EditorGUI.BeginChangeCheck();
     GUILayout.BeginHorizontal();
     // Editor value reset button
     if (GUILayout.Button(new GUIContent("Reset Editor"), EditorStyles.miniButton))
     {
         KP.Reset_create();
     }
     GUILayout.EndHorizontal();
     EditorGUILayout.Space();
     // Editor value for width and height of the created mesh [ float ]
     KP._width  = EditorGUILayout.FloatField("Width", KP._width);
     KP._height = EditorGUILayout.FloatField("Height", KP._height);
     EditorGUILayout.Space();
     // Editor value for width and height segments of the created mesh [ int ]
     KP._uSegments = EditorGUILayout.IntField("uSegments", KP._uSegments);
     KP._vSegments = EditorGUILayout.IntField("vSegments", KP._vSegments);
     EditorGUILayout.Space();
     GUILayout.BeginHorizontal();
     // Editor value for the pivot point of the created mesh Unity.TextAnchor
     GUILayout.Label("Pivot ");
     GUILayout.Space(18);
     KP._pivotIndex = EditorGUILayout.Popup(KP._pivotIndex, KP._pivotLabels);
     GUILayout.EndHorizontal();
     GUILayout.BeginHorizontal();
     // Editor value for the mesh face direction FACING.XZ
     GUILayout.Label("Facing ");
     GUILayout.Space(10);
     KP._faceIndex = EditorGUILayout.Popup(KP._faceIndex, kPoly.FACING);
     GUILayout.EndHorizontal();
     GUILayout.BeginHorizontal();
     // Editor value for triangle winding order
     GUILayout.Label("Winding");
     GUILayout.Space(2);
     KP._windinIndex = EditorGUILayout.Popup(KP._windinIndex, KP._windinLabels);
     GUILayout.EndHorizontal();
     GUILayout.BeginHorizontal();
     // Editor value for collider export
     GUILayout.Label("Collider ");
     GUILayout.Space(3);
     KP._colliderIndex = EditorGUILayout.Popup(KP._colliderIndex, KP._colliderLabels);
     GUILayout.EndHorizontal();
     EditorGUILayout.Space();
     EditorGUILayout.Space();
     // Starting GUI changes check
     if (EditorGUI.EndChangeCheck())
     {
         KP._width     = Mathf.Clamp(KP._width, 0, int.MaxValue);
         KP._height    = Mathf.Clamp(KP._height, 0, int.MaxValue);
         KP._uSegments = Mathf.Clamp(KP._uSegments, 1, int.MaxValue);
         KP._vSegments = Mathf.Clamp(KP._vSegments, 1, int.MaxValue);
         //   Debug.Log("Change Editor");
     }
     EditorGUILayout.EndVertical();
 }
示例#2
0
 private static void CREATE_cube()
 {
     EditorGUILayout.BeginVertical();
     // Editor value reset button
     if (GUILayout.Button(new GUIContent("Reset Editor"), EditorStyles.miniButton))
     {
         KP.Reset_create();
     }
     EditorGUILayout.Space();
     // Editor value for width and height of the created mesh [ float ]
     KP._width  = EditorGUILayout.FloatField("Width", KP._width);
     KP._height = EditorGUILayout.FloatField("Height", KP._height);
     KP._depth  = EditorGUILayout.FloatField("Depth", KP._depth);
     EditorGUILayout.Space();
     // Editor value for width and height segments of the created mesh [ int ]
     KP._uSegments = EditorGUILayout.IntField("uSegments", KP._uSegments);
     KP._vSegments = EditorGUILayout.IntField("vSegments", KP._vSegments);
     KP._zSegments = EditorGUILayout.IntField("zSegments", KP._zSegments);
     EditorGUILayout.Space();
     EditorGUILayout.EndVertical();
 }
示例#3
0
        private static void CREATE_cone()
        {
            EditorGUILayout.BeginVertical();
            // Editor value reset button
            if (GUILayout.Button(new GUIContent("Reset Editor"), EditorStyles.miniButton))
            {
                KP.Reset_create();
            }
            // if openingAngle>0, create a cone with this angle by setting radiusTop to 0, and adjust radiusBottom according to length;
            EditorGUILayout.Space();
            KP._uSegments = EditorGUILayout.IntField("Segments", KP._uSegments); // numVertices
            EditorGUILayout.Space();
            KP._width  = EditorGUILayout.FloatField("Radius Top", KP._width);    //radiusTop
            KP._depth  = EditorGUILayout.FloatField("Radius Bottom", KP._depth); //radiusBottom
            KP._height = EditorGUILayout.FloatField("Height", KP._height);       //length
            EditorGUILayout.Space();
            KP.openingAngle = EditorGUILayout.FloatField("Open Angle", KP.openingAngle);
            EditorGUILayout.Space();
            KP.outside = EditorGUILayout.Toggle("Outside", KP.outside);
            KP.inside  = EditorGUILayout.Toggle("Inside", KP.inside);
            EditorGUILayout.Space();

            EditorGUILayout.EndVertical();
        }
示例#4
0
        public static void DRAW_PANEL()
        {
            bool GUI_TEMP = GUI.enabled;

            EditorGUILayout.BeginVertical();
            GUILayout.Space(2);

            // OBJECT CART
            KP.MESH_CART_INDEX = EditorGUILayout.Popup(KP.MESH_CART_INDEX, KP.MESH_CART);
            // OBJECT TYPE
            KP.FOLD_object = EditorGUILayout.Foldout(KP.FOLD_object, "Object Types");
            if (KP.FOLD_object)
            {
                int objectTemp = KP.MESH_TYPE_INDEX;
                GUILayout.BeginHorizontal();
                GUILayout.Space(10);
                KP.MESH_TYPE_INDEX = GUILayout.SelectionGrid(KP.MESH_TYPE_INDEX, (KP.MESH_CART_INDEX == 0 ? KP.MESH_TYPE_a : KP.MESH_TYPE_b), 2);
                GUILayout.Space(10);
                GUILayout.EndHorizontal();

                if (objectTemp != KP.MESH_TYPE_INDEX)
                {
                    KP.Reset_create();
                }
            }
            // OBJECT NAME
            KP.FOLD_name = EditorGUILayout.Foldout(KP.FOLD_name, "Object Name");
            if (KP.FOLD_name)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(10);
                GUI.enabled  = KP.MESH_TYPE_INDEX != -1;
                KP._meshName = EditorGUILayout.TextField(KP._meshName, KP_Style.tf_input_center());
                GUI.enabled  = GUI_TEMP;
                if (GUILayout.Button("ID", GUILayout.Width(24)))
                {
                    KP._meshName = "kPoly " + UnityEngine.Random.Range(1, 99);
                }
                GUILayout.Space(10);
                GUILayout.EndHorizontal();
            }
            // OBJECT PARAMETERS
            KP.FOLD_para = EditorGUILayout.Foldout(KP.FOLD_para, "Parameters");
            if (KP.FOLD_para)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(10);
                GUI.enabled = KP.MESH_TYPE_INDEX != -1;
                if (KP.MESH_CART_INDEX == 0)
                {
                    switch (KP.MESH_TYPE_INDEX)
                    {
                    case 0:
                        CREATE_cube();
                        break;

                    case 1:
                        CREATE_plane();
                        break;

                    case 2:
                        CREATE_cone();
                        break;
                    }
                }
                else
                {
                    EditorGUILayout.LabelField("No editabled properties.", EditorStyles.boldLabel);
                }
                GUILayout.Space(10);
                GUILayout.EndHorizontal();
            }
            // OBJECT CREATION TYPE
            KP.FOLD_create = EditorGUILayout.Foldout(KP.FOLD_create, "Creation Types");//, folderSkin());
            if (KP.FOLD_create)
            {
                // Editor Button for start mesh creation
                if (GUILayout.Button(new GUIContent("GameObject [ Scene ]")))
                {
                    MeshCreator_gameObject();
                }
                GUILayout.Button(new GUIContent("Mesh Asset [ DataBase ]"));
                GUILayout.BeginHorizontal();
                GUILayout.Button(new GUIContent("Export File [ Folder ]"));
                GUILayout.Button(new GUIContent(".."), GUILayout.Width(18));
                GUILayout.EndHorizontal();
            }

            EditorGUILayout.EndVertical();
            GUI.enabled = GUI_TEMP;
        }