Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


AddOverlayToActiveView<T>(T)

Add an Overlay to be displayed in the last focused Scene View. Overlays added to this static list will be automatically moved to the last active Scene View, and are displayed until removed.
Read time 1 minuteLast updated 8 days ago

Definition

  • Type: Method
  • Namespace: UnityEditor
  • Assembly: UnityEditor
public static void AddOverlayToActiveView<T>(T overlay) where T : Overlay

Parameters

overlay

T
The Overlay to add.

Remarks

Examples

using System;using System.Linq;using UnityEditor;using UnityEditor.EditorTools;using UnityEditor.Overlays;using UnityEditor.UIElements;using UnityEngine;using UnityEngine.UIElements;// An EditorTool that shows an Overlay in the active scene view while enabled.[EditorTool("Overlay Tool Example", typeof(Transform))]class ToolWithOverlay : EditorTool{ ActiveSceneViewOverlay m_Overlay; void OnEnable() { m_Overlay = new ActiveSceneViewOverlay(targets.Cast<Transform>().ToArray()); SceneView.AddOverlayToActiveView(m_Overlay); } void OnDisable() { SceneView.RemoveOverlayFromActiveView(m_Overlay); }}// A simple Overlay that moves a collection of transforms by some translation.class ActiveSceneViewOverlay : Overlay{ Vector3Field m_Translation; Transform[] m_Selection; public ActiveSceneViewOverlay(Transform[] selection) { m_Selection = selection; } public override VisualElement CreatePanelContent() { var root = new VisualElement(); root.Add(m_Translation = new Vector3Field("Translation")); root.Add(new Button(MoveSelectionUp) { text = "Move Selection Up" }); m_Translation.SetValueWithoutNotify(Vector3.up); m_Translation.style.minWidth = 300; return root; } void MoveSelectionUp() { Undo.RecordObjects(m_Selection.ToArray(), "Move Selection"); foreach (var transform in m_Selection) transform.position += m_Translation.value; }}