Szukaj…


Subskrybowanie wydarzenia w kodzie

Domyślnie należy subskrybować zdarzenie za pomocą inspektora, ale czasem lepiej jest to zrobić w kodzie. W tym przykładzie subskrybujemy zdarzenie kliknięcia przycisku, aby go obsłużyć.

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

Komponenty interfejsu użytkownika zwykle zapewniają łatwo głównemu odbiornikowi:

Dodawanie słuchaczy myszy

Czasami chcesz dodać detektory do określonych zdarzeń, które nie są natywnie dostarczane przez komponenty, w szczególności zdarzeń myszy. Aby to zrobić, musisz dodać je samodzielnie, korzystając ze składnika 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." );
    }
}

Możliwe są różne identyfikatory zdarzeń:

  • PointerEnter
  • PointerExit
  • PointerDown
  • PointerUp
  • PointerClick
  • Opór
  • Upuszczać
  • Zwój
  • UpdateSelected
  • Wybierz
  • Odznacz
  • Ruszaj się
  • InitializePotentialDrag
  • BeginDrag
  • EndDrag
  • Zatwierdź
  • Anuluj


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow