unity3d
Sistema de interfaz de usuario (UI)
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
- Botón: onClick
- Desplegable : onValueChanged
- InputField: onEndEdit , onValidateInput , onValueChanged
- Barra de desplazamiento: onValueChanged
- ScrollRect: onValueChanged
- Control deslizante: onValueChanged
- Alternar: onValueChanged
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