private void _DoToolbarButton(Rect rToolBtn, ToolIcons.eToolIcon toolIcon)
        {
            int   iconPadding  = 6;
            Rect  rToolIcon    = new Rect(rToolBtn.x + iconPadding, rToolBtn.y + iconPadding, rToolBtn.size.y - 2 * iconPadding, rToolBtn.size.y - 2 * iconPadding);
            Color activeColor  = new Color(1f, 1f, 1f, 0.8f);
            Color disableColor = new Color(1f, 1f, 1f, 0.4f);

            switch (toolIcon)
            {
            case ToolIcons.eToolIcon.Pencil:
                GUI.color = s_brushMode == eBrushMode.Paint ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Paint")))
                {
                    s_brushMode = eBrushMode.Paint;
                    MyAutoTileMap.BrushGizmo.Clear();
                    MyAutoTileMap.BrushGizmo.BrushAction = new AutoTileBrush.TileAction();
                    MyAutoTileMap.BrushGizmo.BrushAction.Push(MyAutoTileMap, 0, 0, m_tilesetComponent.SelectedTileIdx, MyAutoTileMap.BrushGizmo.SelectedLayer);
                }
                break;

            case ToolIcons.eToolIcon.Erase:
                GUI.color = s_brushMode == eBrushMode.Erase ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Erase")))
                {
                    s_brushMode = eBrushMode.Erase;
                    MyAutoTileMap.BrushGizmo.Clear();
                    MyAutoTileMap.BrushGizmo.BrushAction = new AutoTileBrush.TileAction();
                    MyAutoTileMap.BrushGizmo.BrushAction.Push(MyAutoTileMap, 0, 0, -1, MyAutoTileMap.BrushGizmo.SelectedLayer);
                }
                break;

            case ToolIcons.eToolIcon.Undo:
                GUI.color = MyAutoTileMap.BrushGizmo.CanUndo()? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", " Undo Last Brush Action (Shift + Z)")))
                {
                    MyAutoTileMap.BrushGizmo.UndoAction();
                }
                break;

            case ToolIcons.eToolIcon.Redo:
                GUI.color = MyAutoTileMap.BrushGizmo.CanRedo()? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", " Redo Last Brush Action (Shift + Y)")))
                {
                    MyAutoTileMap.BrushGizmo.RedoAction();
                }
                break;

            case ToolIcons.eToolIcon.Info:
                GUI.color = m_displayHelpBox ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", " Display Help (F1)")))
                {
                    m_displayHelpBox = !m_displayHelpBox;
                }
                break;
            }
            GUI.color = Color.white;
            GUI.DrawTexture(rToolIcon, ToolIcons.GetToolTexture(toolIcon));
        }
示例#2
0
        private void OnToolSelected_BrushToolbar(ToolbarControl source, int selectedToolIdx, int prevSelectedToolIdx)
        {
            ToolIcons.eToolIcon toolIcon = (ToolIcons.eToolIcon)selectedToolIdx;
            switch (toolIcon)
            {
            case ToolIcons.eToolIcon.Pencil:
                TilemapEditor.s_brushMode = TilemapEditor.eBrushMode.Paint;
                Tools.current             = Tool.None;
                break;

            case ToolIcons.eToolIcon.Erase:
                TilemapEditor.s_brushMode = TilemapEditor.eBrushMode.Erase;
                brushPaintToolbar.TriggerButton(0);
                Tools.current = Tool.None;
                break;

            case ToolIcons.eToolIcon.Fill:
                TilemapEditor.s_brushMode = TilemapEditor.eBrushMode.Fill;
                brushPaintToolbar.TriggerButton(0);
                Tools.current = Tool.None;
                break;

            case ToolIcons.eToolIcon.FlipV:
                BrushBehaviour.SFlipV();
                Tools.current      = Tool.None;
                source.SelectedIdx = prevSelectedToolIdx;
                break;

            case ToolIcons.eToolIcon.FlipH:
                BrushBehaviour.SFlipH();
                Tools.current      = Tool.None;
                source.SelectedIdx = prevSelectedToolIdx;
                break;

            case ToolIcons.eToolIcon.Rot90:
                BrushBehaviour.SRot90();
                Tools.current      = Tool.None;
                source.SelectedIdx = prevSelectedToolIdx;
                break;

            case ToolIcons.eToolIcon.Info:
                TilemapEditor.s_displayHelpBox = !TilemapEditor.s_displayHelpBox;
                Tools.current      = Tool.None;
                source.SelectedIdx = prevSelectedToolIdx;
                source.SetHighlight(selectedToolIdx, TilemapEditor.s_displayHelpBox);
                break;

            case ToolIcons.eToolIcon.Refresh:
                TilemapGroup tilemapGroup = Selection.activeGameObject.GetComponent <TilemapGroup>();
                if (tilemapGroup)
                {
                    foreach (STETilemap tilemap in tilemapGroup.Tilemaps)
                    {
                        tilemap.Refresh(true, true, true, true);
                    }
                }
                else
                {
                    STETilemap tilemap = Selection.activeGameObject.GetComponent <STETilemap>();
                    if (tilemap)
                    {
                        tilemap.Refresh(true, true, true, true);
                    }
                }
                Tools.current      = Tool.None;
                source.SelectedIdx = prevSelectedToolIdx;
                break;
            }
        }
示例#3
0
        private void _DoToolbarButton(Rect rToolBtn, ToolIcons.eToolIcon toolIcon)
        {
            BrushBehaviour brush        = BrushBehaviour.GetOrCreateBrush((Tilemap)target);
            int            iconPadding  = 6;
            Rect           rToolIcon    = new Rect(rToolBtn.x + iconPadding, rToolBtn.y + iconPadding, rToolBtn.size.y - 2 * iconPadding, rToolBtn.size.y - 2 * iconPadding);
            Color          activeColor  = new Color(1f, 1f, 1f, 0.8f);
            Color          disableColor = new Color(1f, 1f, 1f, 0.4f);

            switch (toolIcon)
            {
            case ToolIcons.eToolIcon.Pencil:
                GUI.color = GetBrushMode() == eBrushMode.Paint ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Paint")))
                {
                    s_brushMode = eBrushMode.Paint;
                }
                break;

            case ToolIcons.eToolIcon.Erase:
                GUI.color = GetBrushMode() == eBrushMode.Erase ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Erase (Hold Shift)")))
                {
                    s_brushMode = eBrushMode.Erase;
                }
                break;

            case ToolIcons.eToolIcon.Fill:
                GUI.color = GetBrushMode() == eBrushMode.Fill ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Fill (Double click)")))
                {
                    s_brushMode = eBrushMode.Fill;
                }
                break;

            case ToolIcons.eToolIcon.FlipV:
                GUI.color = s_brushFlipV ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Flip Vertical (" + ShortcutKeys.k_FlipV + ")")))
                {
                    brush.FlipV();
                    s_brushFlipV = !s_brushFlipV;
                }
                break;

            case ToolIcons.eToolIcon.FlipH:
                GUI.color = s_brushFlipH ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Flip Horizontal (" + ShortcutKeys.k_FlipH + ")")))
                {
                    brush.FlipH();
                    s_brushFlipH = !s_brushFlipH;
                }
                break;

            case ToolIcons.eToolIcon.Rot90:
                GUI.color = s_brushRot90 ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", "Rotate 90 clockwise (" + ShortcutKeys.k_Rot90 + "); anticlockwise (" + ShortcutKeys.k_Rot90Back + ")")))
                {
                    if (!s_brushRot90)
                    {
                        brush.Rot90();
                    }
                    else
                    {
                        brush.Rot90Back();
                    }
                    s_brushRot90 = !s_brushRot90;
                }
                break;

            case ToolIcons.eToolIcon.Info:
                GUI.color = m_displayHelpBox ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", " Display Help (F1)")))
                {
                    m_displayHelpBox = !m_displayHelpBox;
                }
                break;

            case ToolIcons.eToolIcon.Refresh:
                GUI.color = m_displayHelpBox ? activeColor : disableColor;
                if (GUI.Button(rToolBtn, new GUIContent("", " Refresh Tilemap (F5)")))
                {
                    TilemapGroup tilemapGroup = Selection.activeGameObject.GetComponent <TilemapGroup>();
                    if (tilemapGroup)
                    {
                        foreach (Tilemap tilemap in tilemapGroup.Tilemaps)
                        {
                            tilemap.Refresh(true, true, true, true);
                        }
                    }
                    else
                    {
                        m_tilemap.Refresh(true, true, true, true);
                    }
                }
                break;
            }
            GUI.color = Color.white;
            GUI.DrawTexture(rToolIcon, ToolIcons.GetToolTexture(toolIcon));
        }