# OverlayCanvas

> OverlayCanvas is a container for collections of Overlay s.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.Overlays](/engine/6000.6/script-reference/unityeditor/overlays.md)
* **Assembly:** UnityEditor.CoreModule
* **Implements:** [ISerializationCallbackReceiver](/engine/6000.6/script-reference/unityengine/iserializationcallbackreceiver.md)

```csharp
public sealed class OverlayCanvas : ISerializationCallbackReceiver
```

## Remarks

Every [EditorWindow](/engine/6000.6/script-reference/unityeditor/editorwindow.md) has an [OverlayCanvas](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas.md), but only windows that opt-in to Overlay support will display Overlays. See [ISupportsOverlays](/engine/6000.6/script-reference/unityeditor/overlays/isupportsoverlays.md) for more information.

## Properties

| Property                                                                                                 | Description                                                                                     |
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| [overlays](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/overlays.md)               | The [Overlay](/engine/6000.6/script-reference/unityeditor/overlays/overlay.md)s in this canvas. |
| [overlaysEnabled](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/overlaysenabled.md) | Returns true if overlays display in the window, or false if overlays are hidden.                |

## Methods

| Method                                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Add](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/add.md)                               | Add an [Overlay](/engine/6000.6/script-reference/unityeditor/overlays/overlay.md) to this canvas. Added Overlays will be displayed in the associated [EditorWindow](/engine/6000.6/script-reference/unityeditor/editorwindow.md) until they are removed.                                                                                                                                                                                                                                            |
| [OnAfterDeserialize](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/onafterdeserialize.md) | Invoked after [OverlayCanvas](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas.md) is deserialized.                                                                                                                                                                                                                                                                                                                                                                               |
| [OnBeforeSerialize](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/onbeforeserialize.md)   | Invoked before [OverlayCanvas](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas.md) will be serialized. This is used to store [Overlay](/engine/6000.6/script-reference/unityeditor/overlays/overlay.md) layout data.                                                                                                                                                                                                                                                             |
| [Remove](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/remove.md)                         | Remove an [Overlay](/engine/6000.6/script-reference/unityeditor/overlays/overlay.md) from this canvas. Removed Overlays are disassociated from [OverlayCanvas](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas.md) and the related [EditorWindow](/engine/6000.6/script-reference/unityeditor/editorwindow.md), but not destroyed. This means you are able to move a single [Overlay](/engine/6000.6/script-reference/unityeditor/overlays/overlay.md) between multiple windows. |
| [ResetOverlay](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/resetoverlay.md)             | Resets the overlay to its default state.                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [RestoreOverlay](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/restoreoverlay.md)         | Restores [Overlay](/engine/6000.6/script-reference/unityeditor/overlays/overlay.md) state according to the data parameter.                                                                                                                                                                                                                                                                                                                                                                          |
| [ShowPopup](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/showpopup.md)                   | Displays an overlay as a pop-up in a [EditorWindow](/engine/6000.6/script-reference/unityeditor/editorwindow.md).                                                                                                                                                                                                                                                                                                                                                                                   |
| [ShowPopupAtMouse](/engine/6000.6/script-reference/unityeditor/overlays/overlaycanvas/showpopupatmouse.md)     | Displays an overlay as a pop-up in a [EditorWindow](/engine/6000.6/script-reference/unityeditor/editorwindow.md) at the mouse position.                                                                                                                                                                                                                                                                                                                                                             |
