module-navigation-tool/Editor/Toolbar/Tools/ToolUILayerToggle.cs

47 lines
1.2 KiB
C#

using Game.NavigationTool.Editor.Toolbar;
using JetBrains.Annotations;
using UnityEditor;
using UnityEngine;
using UTools = UnityEditor.Tools;
namespace Game.NavigationTool.Editor.Tools
{
[UsedImplicitly]
internal sealed class ToolUILayerToggle : IToolbarDrawer
{
public bool Visible => true;
public bool Enabled => !EditorApplication.isPlayingOrWillChangePlaymode;
public EToolbarPlacement Placement => EToolbarPlacement.Left;
public void Update()
{
}
public void Draw(Rect rect, Styles styles)
{
int layer = 1 << LayerMask.NameToLayer("UI");
bool value = (UTools.visibleLayers & layer) != 0;
bool temp = EditorGUI.Toggle(rect, value, styles.button);
GUI.Label(rect, "UI", styles.labelCenter);
if (temp == value)
return;
if (temp)
{
UTools.visibleLayers |= layer;
SceneView.RepaintAll();
}
else
{
UTools.visibleLayers &= ~layer;
SceneView.RepaintAll();
}
}
public float CalculateWidth()
{
return 30.0f;
}
}
}