Recherche…


S'abonner à l'événement dans le code

Par défaut, il convient de s'abonner à un événement en utilisant l'inspecteur, mais il est parfois préférable de le faire en code. Dans cet exemple, nous vous abonnons pour cliquer sur l'événement d'un bouton afin de le gérer.

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

Les composants de l'interface utilisateur fournissent généralement facilement leur auditeur principal:

Ajouter des écouteurs de souris

Parfois, vous souhaitez ajouter des écouteurs sur des événements particuliers non fournis de manière native par les composants, en particulier des événements de souris. Pour ce faire, vous devrez les ajouter vous-même en utilisant un composant 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." );
    }
}

Divers eventID sont possibles:

  • PointeurEnter
  • PointerExit
  • PointerDown
  • Pointeur
  • PointerClick
  • Traîne
  • Laissez tomber
  • Faire défiler
  • UpdateSelected
  • Sélectionner
  • Désélectionner
  • Bouge toi
  • InitializePotentialDrag
  • BeginDrag
  • EndDrag
  • Soumettre
  • Annuler


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow