Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Событие Tooltip отправляется, чтобы проверить, может ли визуальный элемент под указателем отображать всплывающую подсказку. Это мероприятие предназначено только для редактора.

Подсказки обычно задаются с помощью свойства tooltip. Вы также можете ответить на событие Tooltip, чтобы настроить всплывающие подсказки.

Вы можете обработать событие Tooltip двумя способами:

  1. Настройте обратный вызов для TooltipEvent. Это добавляет всплывающую подсказку к визуальному элементу, который не имеет ни одного набора. Это также может переопределить всплывающую подсказку, установленную для визуального элемента.
  2. Объявите пользовательский VisualElement (например, объявите класс, расширяющий VisualElement) и переопределите метод ExecuteDefaultAction.

Если вы устанавливаете обратный вызов или реализуете настраиваемый визуальный элемент для объявления всплывающих подсказок, не устанавливайте значение свойства tooltip с помощью кода или UXML.

Когда вы устанавливаете свойство tooltip, визуальный элемент под курсором мыши автоматически регистрирует обратный вызов для обработки TooltipEvent. Этот обратный вызов также останавливает дальнейшее распространение события.

Если вы регистрируете пользовательский обратный вызов для обработки TooltipEvent, необходимо остановить распространение события, иначе всплывающая подсказка может быть переопределена позже на этапе распространения.

Базовым классом для событий всплывающей подсказки является класс EventBase.

Событие Описание Стекает вниз Пузыри вверх Отменяемый
TooltipEvent Отправляется непосредственно перед тем, как Unity отображает всплывающую подсказку.

Уникальные свойства

rect: прямоугольник наведенного визуального элемента в системе координат панели.

tooltip: свойство tooltip представляет собой текстовую строку, которая отображается внутри окна всплывающей подсказки во время всплывающая подсказка событие. Следующее событие обратного вызова устанавливает свойство всплывающей подсказки во время события:

evt.tooltip = "Подсказка установлена ​​родителем!";

Список событий

Подсказка

Событие TooltipEvent отправляется непосредственно перед тем, как редактор Unity отображает всплывающую подсказку. Обработчик должен установить строку TooltipEvent.tooltip и TooltipEvent.rect.

target: визуальный элемент под курсором мыши.

Примеры

В следующих примерах показано поведение ToolTipEvent.

Чтобы просмотреть пример:

  1. В разделе Ресурсы > Сценарии > Редактор создайте сценарий C# с именем SampleWindow.
  2. Скопируйте один из следующих примеров в сценарий C#.
  3. На панели инструментов редактора выберите Окно > UI Toolkit > SampleWindow.

Пример 1. Регистрация обратного вызова для TooltipEvent родительского визуального элемента

using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class SampleWindow : EditorWindow { [MenuItem("Window/UI Toolkit/SampleWindow")] public static void ShowExample() { SampleWindow wnd = GetWindow<SampleWindow>(); wnd.titleContent = new GUIContent("SampleWindow"); } public void CreateGUI() { VisualElement label = new Label("Hello World! This is a UI Toolkit Label."); rootVisualElement.Add(label); label.tooltip = "And this is a tooltip"; // If you comment out the registration of the callback, the tooltip that displays for the label is "And this is a tooltip". // If you keep the registration of the callback, the tooltip that displays for the label (and any other child of rootVisualElement) // is "Tooltip set by parent!". rootVisualElement.RegisterCallback<TooltipEvent>(evt => { evt.tooltip = "Tooltip set by parent!"; evt.rect = (evt.target as VisualElement).worldBound; evt.StopPropagation(); }, TrickleDown.TrickleDown); // Pass the TrickleDown.TrickleDown parameter to intercept the event before it reaches the label. } }

Пример 2. Объявление пользовательского визуального элемента и переопределение ExecuteDefaultAction

using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class SampleWindow : EditorWindow { [MenuItem("Window/UI Toolkit/SampleWindow")] public static void ShowExample() { SampleWindow wnd = GetWindow<SampleWindow>(); wnd.titleContent = new GUIContent("SampleWindow"); } private void CreateGUI() { CustomLabel custom1 = new CustomLabel("custom 1"); rootVisualElement.Add(custom1); CustomLabel custom2 = new CustomLabel("custom 2"); rootVisualElement.Add(custom2); } } public class CustomLabel : Label { private static int m_InstanceCounter = 0; private int m_CurrentCounter; public CustomLabel(string labelText) : base(labelText) { m_CurrentCounter = m_InstanceCounter++; } protected override void ExecuteDefaultAction(EventBase evt) { // Other events need to be handled as usual. base.ExecuteDefaultAction(evt); if (evt.eventTypeId == TooltipEvent.TypeId()) { TooltipEvent e = (TooltipEvent)evt; // Apply an offset to the tooltip position. var tooltipRect = new Rect(worldBound); tooltipRect.x += 10; tooltipRect.y += 10; e.rect = tooltipRect; // Set a custom/dynamic tooltip. e.tooltip = $"This is instance # {m_CurrentCounter + 1} of my CustomLabel"; // Stop propagation avoids other instances of handling of the event that may override the values set here. e.StopPropagation(); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3