Exemple #1
0
        private void OnInspectorGUI_Renderer(ptTilemap tmp)
        {
            GUILayout.Label("Renderer:");
            EditorGUILayout.Space();

            EditorGUI.BeginChangeCheck();
            tmp.CellSize     = EditorGUILayout.Vector2Field("Cell size:", tmp.CellSize);
            tmp.ColorTint    = EditorGUILayout.ColorField("Color tint:", tmp.ColorTint);
            tmp.SortingOrder = EditorGUILayout.IntField("Sorting order:", tmp.SortingOrder);
            tmp.Material     = (Material)EditorGUILayout.ObjectField("Material:", tmp.Material, typeof(Material), false);
            tmp.AutoTrim     = EditorGUILayout.Toggle("Auto trim:", tmp.AutoTrim);

            EditorGUILayout.Space();
            if (GUILayout.Button("Clear"))
            {
                tmp.Clear();
                tmp.UpdateMap();
            }

            if (GUILayout.Button("Refresh mesh"))
            {
                tmp.UpdateMap();
            }

            if (EditorGUI.EndChangeCheck())
            {
                EditorUtility.SetDirty(tmp.gameObject);
            }
        }
        private void Start()
        {
            tilemap = GetComponent <ptTilemap>();

            tilemap.SetPixel(1, 1, Color.green);
            tilemap.SetPixel(1, 50, Color.red);

            tilemap.UpdateMap();
        }
Exemple #3
0
 private void OnInspectorGUI_Other(ptTilemap tmp)
 {
     GUILayout.Label("Other:");
     EditorGUILayout.Space();
     EditorGUI.BeginChangeCheck();
     tmp.Tag = EditorGUILayout.TagField("Tag:", tmp.Tag);
     tmp.DisplayChunksInHierarchy = GUILayout.Toggle(tmp.DisplayChunksInHierarchy, "Display chunks in hierarchy");
     if (EditorGUI.EndChangeCheck())
     {
         EditorUtility.SetDirty(tmp.gameObject);
     }
 }
Exemple #4
0
 private void OnInspectorGUI_Collider(ptTilemap tmp)
 {
     tmp.ColliderEnabled = GUILayout.Toggle(tmp.ColliderEnabled, "Collider2D");
     EditorGUILayout.Space();
     EditorGUI.BeginDisabledGroup(!tmp.ColliderEnabled);
     tmp.ColliderIsTrigger = GUILayout.Toggle(tmp.ColliderIsTrigger, "Is trigger");
     tmp.LayerMask         = EditorGUILayout.LayerField("Layer", tmp.LayerMask);
     tmp.PhysicsMaterial2D = (PhysicsMaterial2D)EditorGUILayout.ObjectField("Physics material 2D:", tmp.PhysicsMaterial2D, typeof(PhysicsMaterial2D), false);
     EditorGUILayout.Space();
     if (GUILayout.Button("Update collider"))
     {
         tmp.RegenerateCollider();
     }
     EditorGUI.EndDisabledGroup();
 }
Exemple #5
0
        private void DrawColorPicker(ptTilemap tmp)
        {
            color = EditorGUILayout.ColorField("Paint color:", color);

            blendMode = (BlendMode)EditorGUILayout.EnumPopup("Blend mode:", blendMode);

            GUILayout.BeginHorizontal();
            GUILayout.Box(colorBox, GUILayout.Width(100), GUILayout.Height(100));

            if (Event.current.type == EventType.MouseDrag || Event.current.type == EventType.MouseDown)
            {
                if (GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
                {
                    var pickerRect = GUILayoutUtility.GetLastRect();
                    var gui        = Event.current.mousePosition;

                    Xpicker = Mathf.Abs((pickerRect.x - gui.x) / pickerRect.width);
                    Ypicker = Mathf.Abs((pickerRect.y - gui.y) / pickerRect.height);

                    UpdateColor();

                    Repaint();
                }
            }

            GUILayout.BeginVertical();

            if (GUILayout.Button(isRGB ? "RGB" : "HSV"))
            {
                isRGB = !isRGB;
            }

            if (isRGB)
            {
                color.r = EditorGUILayout.Slider(color.r, 0f, 1f);
                color.g = EditorGUILayout.Slider(color.g, 0f, 1f);
                color.b = EditorGUILayout.Slider(color.b, 0f, 1f);
                color.a = EditorGUILayout.Slider(color.a, 0f, 1f);
            }
            else
            {
                var a   = color.a;
                var hsv = color.toHSV();
                hsv.h   = EditorGUILayout.Slider(hsv.h, 0f, 1f);
                hsv.s   = EditorGUILayout.Slider(hsv.s, 0f, 1f);
                hsv.v   = EditorGUILayout.Slider(hsv.v, 0f, 1f);
                color   = hsv.toRGB();
                color.a = a;
            }

            alphaLock = EditorGUILayout.Toggle("Alpha lock", alphaLock);

            if (GUILayout.Button("Clear map to color"))
            {
                tmp.Fill(color);
                tmp.UpdateMap();
            }

            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
        }
Exemple #6
0
        private void OnInspectorGUI_Paint(ptTilemap tmp)
        {
            if (paletteElement == null)
            {
                paletteElement = new Texture2D(50, 20);
                var colors = new Color[paletteElement.width * paletteElement.height];
                for (int i = 0; i < colors.Length; i++)
                {
                    colors[i] = Color.white;
                }
                paletteElement.SetPixels(colors);
                paletteElement.Apply();
            }
            GUILayout.Label("Paint:");
            EditorGUILayout.Space();

            UpdateColorBox();

            showHelp = EditorGUILayout.Foldout(showHelp, "Help");
            if (showHelp)
            {
                GUILayout.Label("RMB - place pixel \nRMB+Shift - erase pixel \nRMB+Control - pick color");
            }
            EditorGUILayout.Space();

            DrawColorPicker(tmp);

            EditorGUILayout.Space();
            showHistoryPalette = EditorGUILayout.Foldout(showHistoryPalette, "History of colors");
            if (showHistoryPalette)
            {
                historyScrollPos = GUILayout.BeginScrollView(historyScrollPos, true, false, GUILayout.Height(50));
                GUILayout.BeginHorizontal();

                for (int i = history.Count - 1; i >= 0; i--)
                {
                    GUI.color = history[i];
                    GUILayout.Box(paletteElement);
                    if (GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition) && Event.current.type == EventType.MouseDown)
                    {
                        color = history[i];
                        Repaint();
                    }
                }
                GUI.color = Color.white;
                GUILayout.EndHorizontal();
                GUILayout.EndScrollView();
                if (GUILayout.Button("Clear"))
                {
                    history.Clear();
                }
            }

            EditorGUILayout.Space();
            showCustomPalette = EditorGUILayout.Foldout(showCustomPalette, "Custom palette");
            if (showCustomPalette)
            {
                palette = (ptPalette)EditorGUILayout.ObjectField("palette:", palette, typeof(ptPalette), false);

                if (palette != null)
                {
                    DrawCustomPalette();
                }
            }

            EditorGUILayout.Space();
            showTilemapPalette = EditorGUILayout.Foldout(showTilemapPalette, "Tilemap pallete");
            if (showTilemapPalette)
            {
                tmpPaletteRows      = EditorGUILayout.IntSlider(tmpPaletteRows, 1, 50);
                tmpPalleteScrollPos = GUILayout.BeginScrollView(tmpPalleteScrollPos, true, false);
                int end_count = 0;
                int r_counter = tmpPaletteRows + 1;
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.BeginVertical(GUILayout.Width(50 * tmpPaletteRows));
                for (int i = 0; i < tmp.Palette.Length; i++)
                {
                    r_counter++;
                    if (r_counter > tmpPaletteRows)
                    {
                        EditorGUILayout.EndVertical();
                        EditorGUILayout.BeginVertical();
                        r_counter = 0;
                        end_count++;
                    }

                    GUI.color = tmp.Palette[i];
                    GUILayout.Box(paletteElement);
                    if (GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition) && Event.current.type == EventType.MouseDown)
                    {
                        color = tmp.Palette[i];
                        Repaint();
                    }
                }
                GUI.color = Color.white;



                EditorGUILayout.EndVertical();
                EditorGUILayout.EndHorizontal();
                GUILayout.EndScrollView();
            }
        }