unity3d
Användargränssnittssystem (UI)
Sök…
Prenumerera på händelse i kod
Som standard bör man prenumerera på händelsen med inspektör, men ibland är det bättre att göra det i kod. I det här exemplet prenumererar vi på klickhändelse för en knapp för att hantera den.
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);
}
}
UI-komponenterna ger vanligtvis sin huvudsakliga lyssnare enkelt:
- Knapp: onClick
- Dropdown: onValueChanged
- InputField: onEndEdit , onValidateInput , onValueChanged
- Scrollbar: onValueChanged
- ScrollRect: onValueChanged
- Skjutreglage: onValueChanged
- Växla: onValueChanged
Lägga till lyssnare på musen
Ibland vill du lägga till lyssnare på speciella händelser som inte nativt tillhandahålls av komponenterna, särskilt mushändelser. För att göra det måste du lägga till dem själv genom att använda en EventTrigger
komponent:
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." );
}
}
Olika eventID är möjliga:
- PointerEnter
- PointerExit
- PointerDown
- PointerUp
- PointerClick
- Drag
- Släppa
- Skrolla
- UpdateSelected
- Välj
- Välja bort
- Flytta
- InitializePotentialDrag
- BeginDrag
- EndDrag
- Skicka in
- Annullera
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow