Buscar..


Suscripción al evento en código

De forma predeterminada, uno debe suscribirse al evento utilizando inspector, pero a veces es mejor hacerlo en código. En este ejemplo nos suscribimos para hacer clic en el evento de un botón para manejarlo.

using UnityEngine;
using UnityEngine.UI;

[RequireComponent(typeof(Button))]
public class AutomaticClickHandler : MonoBehaviour
{
    private void Awake()
    {
        var button = this.GetComponent<Button>();
        button.onClick.AddListener(HandleClick);
    }

    private void HandleClick()
    {
        Debug.Log("AutomaticClickHandler.HandleClick()", this);
    }
}

Los componentes de la interfaz de usuario suelen proporcionar su escucha principal fácilmente

Añadiendo oyentes del mouse

A veces, desea agregar escuchas en eventos particulares no proporcionados de forma nativa por los componentes, en particular eventos de mouse. Para hacerlo, tendrá que agregarlos usted mismo utilizando un componente EventTrigger :

using UnityEngine;
using UnityEngine.EventSystems;

[RequireComponent(typeof( EventTrigger ))]
public class CustomListenersExample : MonoBehaviour
{
    void Start( )
    {
        EventTrigger eventTrigger = GetComponent<EventTrigger>( );
        EventTrigger.Entry entry = new EventTrigger.Entry( );
        entry.eventID = EventTriggerType.PointerDown;
        entry.callback.AddListener( ( data ) => { OnPointerDownDelegate( (PointerEventData)data ); } );
        eventTrigger.triggers.Add( entry );
    }

    public void OnPointerDownDelegate( PointerEventData data )
    {
        Debug.Log( "OnPointerDownDelegate called." );
    }
}

Varios eventID son posibles:

  • PunteroEnter
  • PunteroExit
  • Puntero abajo
  • Apuntador
  • Puntero hacer clic
  • Arrastrar
  • soltar
  • Voluta
  • ActualizarSeleccionado
  • Seleccionar
  • Deseleccionar
  • Movimiento
  • InitializePotentialDrag
  • BeginDrag
  • EndDrag
  • Enviar
  • Cancelar


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow