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)); }
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; } }
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)); }