123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using UnityEditor.Overlays;
- using UnityEditor.Toolbars;
- using UnityEngine;
- using UnityEngine.UIElements.Experimental;
-
- namespace UnityEditor.Tilemaps
- {
- [Overlay(typeof(SceneView), k_OverlayId, k_DisplayName
- , defaultDockZone = DockZone.RightColumn
- , defaultDockPosition = DockPosition.Bottom
- , defaultDockIndex = 0
- , defaultLayout = Layout.Panel)]
- internal class SceneViewOpenTilePaletteOverlay : ToolbarOverlay, ITransientOverlay
- {
- internal const string k_OverlayId = "Scene View/Open Tile Palette";
- private const string k_DisplayName = "Open Tile Palette";
-
- public SceneViewOpenTilePaletteOverlay() : base(TilePaletteOpenPalette.k_ToolbarId) {}
-
- public bool visible => SceneViewOpenTilePaletteHelper.showInSceneViewActive && SceneViewOpenTilePaletteHelper.IsActive();
- }
-
- [EditorToolbarElement(k_ToolbarId)]
- sealed class TilePaletteOpenPalette : EditorToolbarButton
- {
- internal const string k_ToolbarId = "Tile Palette/Open Palette";
-
- const string k_ToolSettingsClass = "unity-tool-settings";
-
- private static string k_LabelText = L10n.Tr("Open Tile Palette");
- private static string k_TooltipText = L10n.Tr("Opens the Tile Palette Window");
- private const string k_IconPath = "Packages/com.unity.2d.tilemap/Editor/Icons/Tilemap.TilePalette.png";
-
- private IValueAnimation currentAnim;
-
- public TilePaletteOpenPalette() : base(SceneViewOpenTilePaletteHelper.OpenTilePalette)
- {
- name = "Open Tile Palette";
- AddToClassList(k_ToolSettingsClass);
-
- icon = EditorGUIUtility.LoadIconRequired(k_IconPath);
- text = k_LabelText;
- tooltip = k_TooltipText;
-
- if (!SceneViewOpenTilePaletteHelper.highlight)
- return;
-
- var anim = experimental.animation.Start(
- new StyleValues()
- {
- borderColor = Color.yellow,
- borderTopWidth = 1,
- borderBottomWidth = 1,
- borderLeftWidth = 1,
- borderRightWidth = 1,
- marginLeft = 1,
- marginRight = 1,
- },
- new StyleValues()
- {
- borderColor = Color.clear,
- borderTopWidth = 1,
- borderBottomWidth = 1,
- borderLeftWidth = 1,
- borderRightWidth = 1,
- marginLeft = 1,
- marginRight = 1,
- }, 3000).Ease(Easing.OutQuad);
- anim.OnCompleted(() => ClearAnim(anim));
- currentAnim = anim;
- SceneViewOpenTilePaletteHelper.highlight = false;
- }
-
- void ClearAnim(IValueAnimation anim)
- {
- if (currentAnim != null && currentAnim == anim)
- {
- currentAnim = null;
- anim.Stop();
- anim.Recycle();
- }
- }
- }
- }
|