Ricerca…


Iscrivendosi all'evento nel codice

Per impostazione predefinita, uno dovrebbe iscriversi all'evento utilizzando l'ispettore, ma a volte è meglio farlo in codice. In questo esempio ci iscriviamo all'evento click di un pulsante per gestirlo.

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);
    }
}

I componenti dell'interfaccia utente di solito forniscono facilmente l'ascoltatore principale:

Aggiungere i listener del mouse

A volte, si desidera aggiungere listener su eventi particolari non forniti in modo nativo dai componenti, in particolare eventi del mouse. Per fare ciò, dovrai aggiungerli da solo usando 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." );
    }
}

Sono possibili varie eventID:

  • PointerEnter
  • PointerExit
  • PointerDown
  • PointerUp
  • PointerClick
  • Trascinare
  • Far cadere
  • Scorrere
  • UpdateSelected
  • Selezionare
  • Deseleziona
  • Mossa
  • InitializePotentialDrag
  • beginDrag
  • EndDrag
  • Sottoscrivi
  • Annulla


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow