MainToolbarToggle
класс в UnityEditor.Toolbars
Наследуется от:Toolbars.MainToolbarElement
Описание
Описывает содержание и поведение элемента переключения для основной панели инструментов.
Чтобы добавить переключатель на главную панель инструментов, верните экземпляр этого класса из статического метода, зарегистрированного через MainToolbarElementAttribute .
using UnityEditor; using UnityEditor.Toolbars; using UnityEngine; public class MainToolbarToggleExample { const string kElementPath = "Examples/Toggle Scene Visibility"; [MainToolbarElement(kElementPath, defaultDockPosition = MainToolbarDockPosition.Middle)] public static MainToolbarElement CreateSceneViewGridToggle() { bool showGrid = SceneView.lastActiveSceneView is not null && SceneView.lastActiveSceneView.showGrid; var onIcon = EditorGUIUtility.IconContent("d_scenevis_visible").image as Texture2D; var offIcon = EditorGUIUtility.IconContent("d_scenevis_hidden").image as Texture2D; // We can change the content based on the internal state we want represented e.g. showGrid var icon = showGrid ? onIcon : offIcon; var content = new MainToolbarContent("Show Grid", icon, "Toggle grid visibility"); return new MainToolbarToggle(content, showGrid, ToggleSceneGrid); } static void ToggleSceneGrid(bool value) { // The MainToolbarToggle does not keep its own state. It notifies this user code via // our ToggleSceneGrid callback, and it is the user's responsibility to update their // internal state and refresh the UI. if (SceneView.lastActiveSceneView is not null) SceneView.lastActiveSceneView.showGrid = value; MainToolbar.Refresh(kElementPath); } static void SceneViewChanged(SceneView oldScene, SceneView newScene) { // Scene grid visibility can be changed elsewhere such as in the Scene view. // If that happens we want to be notified in order to refresh the UI to match. // Since CreateSceneViewGridToggle checks the internal state to match the UI content it produces, // we only need to call MainToolbar.Refresh with the matching path, but we will just use ToggleSceneGrid // for simplicity. if (oldScene != null) oldScene.gridVisibilityChanged -= ToggleSceneGrid; if (newScene != null) newScene.gridVisibilityChanged += ToggleSceneGrid; } static MainToolbarToggleExample() { SceneView.lastActiveSceneViewChanged += SceneViewChanged; } }
Конструкторы
| Конструктор | Описание |
|---|---|
| MainToolbarToggle | Укажите содержание и функцию переключателя главной панели инструментов. |
Унаследованные члены 1
Свойства
| Свойство | Описание |
|---|---|
| content | MainToolbarContent описывает содержание элемента основной панели инструментов. Например, текст, значок или tooltip. |
| displayed | Указывает, должен ли отображаться `VisualElement` для этого элемента панели инструментов. По умолчанию установлено значение `True`. |
| enabled | Указывает, должен ли элемент панели инструментов получать события ввода. По умолчанию установлено значение `True`. |
| populateContextMenu | Добавить содержимое в контекстное меню, которое появляется при щелчке правой кнопкой мыши этого элемента панели инструментов. |