module-navigation-tool/Editor/Toolbar/Tools/ToolUILayerToggle.cs
Anders Ejlersen fe82c5c9fa 1.8.0: Added target frame rate and PlayerPrefs.Delete to toolbar
- Added: Tooltips on all buttons and labels in toolbar tools
- Added: Target frame rate with `[min;max]` slider in toolbar
- Added: `PlayerPrefs` delete button added to toolbar
- Added: Option to select Single/Additive scene load/unload to scene picker
- Added: All `IToolbarSettings` will be grouped with a foldout-toggle in Preferences
2022-12-07 22:10:09 +01:00

46 lines
1.4 KiB
C#

using JetBrains.Annotations;
using UnityEditor;
using UnityEngine;
using UTools = UnityEditor.Tools;
namespace Module.NavigationTool.Editor.Toolbar
{
[UsedImplicitly]
internal sealed class ToolUILayerToggle : AbstractToolbarDrawer
{
public override bool Visible => ToolbarUiSettings.IsUiLayerEnabled;
public override bool Enabled => true;
public override EToolbarPlacement Placement => EToolbarPlacement.Left;
public override int Priority => (int)EToolbarPriority.Medium - 1;
private static readonly GUIContent LABEL = new GUIContent("UI", "Toggles UI visible layer in SceneView");
protected override void Draw(Rect rect)
{
int layer = 1 << LayerMask.NameToLayer("UI");
bool value = (UTools.visibleLayers & layer) != 0;
bool temp = EditorGUI.Toggle(rect, value, styles.button);
GUI.Label(rect, LABEL, styles.labelCenter);
if (temp == value)
return;
if (temp)
{
UTools.visibleLayers |= layer;
SceneView.RepaintAll();
}
else
{
UTools.visibleLayers &= ~layer;
SceneView.RepaintAll();
}
}
public override float CalculateWidth()
{
return 30.0f;
}
}
}