Overlays are persistent and customizable panels and toolbars that are available within Editor Windows. Use Overlays to expose actions and tool options in a convenient and user-controllable way.
This is the base class from which all Overlays inherit. To create an Overlay, return a UnityEngine.UIElements.VisualElement.
using UnityEditor; using UnityEditor.Overlays; using UnityEngine.UIElements; [Overlay(typeof(SceneView), "Selection Count")] class SelectionCount : Overlay { Label m_Label; public override VisualElement CreatePanelContent() { Selection.selectionChanged += () => { if (m_Label != null) m_Label.text = $"Selection Count {Selection.count}"; }; return m_Label = new Label($"Selection Count {Selection.count}"); } }
To create an Overlay that is dockable in a toolbar, see ToolbarOverlay.
| ussClassName | USS class name of elements of this type. | 
| collapsed | Defines whether the overlay is in collapsed form. | 
| containerWindow | EditorWindow the overlay is contained within. | 
| displayed | Shows or hides the overlay. | 
| displayName | Name of overlay used as title. | 
| floating | Returns true if overlay is floating, returns false if overlay is docked in a corner or in a toolbar. | 
| floatingPosition | Local position of closest overlay corner to closest dockposition when floating. | 
| id | Overlay unique ID. | 
| isInToolbar | Returns true if overlay is docked in a toolbar. | 
| layout | Describes the presentation mode for an Overlay. | 
| CreatePanelContent | Implement this method to return your visual element content. | 
| OnCreated | OnCreated is invoked when an Overlay is instantiated in an Overlay Canvas. | 
| OnWillBeDestroyed | Called when an Overlay is about to be destroyed. | 
| Undock | If this Overlay is currently in a toolbar, it will be removed and return to a floating state. | 
| collapsedChanged | Invoked when Overlay.collapsed value is changed. | 
| displayedChanged | This callback is invoked when the Overlay.displayed value has been changed. | 
| floatingChanged | Called when the value of floating has changed. | 
| floatingPositionChanged | This event is invoked when Overlay.floatingPosition is changed. | 
| layoutChanged | Subscribe to this event to be notified when the Overlay.Layout property is modified. |