Unity 6.3
0 онлайн 78 гостей 3 в системе
Вход

CallbackEventHandler.HandleEventTrickleDown

Declaration

protected void HandleEventTrickleDown(UIElements.EventBase evt);

Параметры

Параметр Описание
возможно Экземпляр события.

Описание

Выполняет логику на этом элементе во время фазы TrickleDown, сразу после обратных вызовов TrickleDown этого элемента. Вызов StopPropagation предотвратит дальнейшие вызовы этого метода вдоль пути распространения.

Этот метод предназначен для переопределения подклассами. Используйте его для реализации обработки событий без регистрации обратных вызовов, что гарантирует приоритет обратных вызовов, зарегистрированных пользователями подкласса.

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

using UnityEngine;
using UnityEngine.UIElements;

public class HandleEventExample : VisualElement { // This method is obsolete! Use HandleEventTrickleDown instead and add the "at target" check. // Note that this may impact the execution order between the content of this method and other callbacks // on parent or child elements. It's recommended not to mix ExecuteDefaultAction and HandleEvent methods. protected override void ExecuteDefaultActionAtTarget(EventBase evt) { Debug.Log("Received event " + evt + ", at target, before bubble up on parents."); DoSomethingEarlyOnTarget(); }

// This method is obsolete! Use HandleEventBubbleUp instead and add the "at target" check. // Note that this may impact the execution order between the content of this method and other callbacks // on parent or child elements. It's recommended not to mix ExecuteDefaultAction and HandleEvent methods. protected override void ExecuteDefaultAction(EventBase evt) { Debug.Log("Received event " + evt + ", at target, after bubble up on parents."); DoSomethingLateOnTarget(); }

// This is the recommended method to use. Note that you can also handle events on the element if it's not the target. protected override void HandleEventTrickleDown(EventBase evt) { Debug.Log("Received event " + evt + " before trickle down on children.");

if (evt.target == this) { Debug.Log("Received event " + evt + ", at target, before trickle down on children."); DoSomethingEarlyOnTarget(); } }

// The recommended way to go. Note that you can also handle events on the element if it's not the target. protected override void HandleEventBubbleUp(EventBase evt) { Debug.Log("Received event " + evt + " before bubble up on parents.");

if (evt.target == this) { Debug.Log("Received event " + evt + ", at target, before bubble up on parents."); DoSomethingLateOnTarget(); } }

private void DoSomethingEarlyOnTarget() { } private void DoSomethingLateOnTarget() { } }