using System; using System.Collections.Generic; using UnityEngine; [AddComponentMenu("NGUI/Interaction/Event Trigger")] public class UIEventTrigger : MonoBehaviour { private void OnHover(bool isOver) { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; if (isOver) { EventDelegate.Execute(this.onHoverOver); } else { EventDelegate.Execute(this.onHoverOut); } UIEventTrigger.current = null; } private void OnPress(bool pressed) { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; if (pressed) { EventDelegate.Execute(this.onPress); } else { EventDelegate.Execute(this.onRelease); } UIEventTrigger.current = null; } private void OnSelect(bool selected) { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; if (selected) { EventDelegate.Execute(this.onSelect); } else { EventDelegate.Execute(this.onDeselect); } UIEventTrigger.current = null; } private void OnClick() { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; EventDelegate.Execute(this.onClick); UIEventTrigger.current = null; } private void OnDoubleClick() { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; EventDelegate.Execute(this.onDoubleClick); UIEventTrigger.current = null; } private void OnDragStart() { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; EventDelegate.Execute(this.onDragStart); UIEventTrigger.current = null; } private void OnDragEnd() { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; EventDelegate.Execute(this.onDragEnd); UIEventTrigger.current = null; } private void OnDragOver(GameObject go) { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; EventDelegate.Execute(this.onDragOver); UIEventTrigger.current = null; } private void OnDragOut(GameObject go) { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; EventDelegate.Execute(this.onDragOut); UIEventTrigger.current = null; } private void OnDrag(Vector2 delta) { if (UIEventTrigger.current != null) { return; } UIEventTrigger.current = this; EventDelegate.Execute(this.onDrag); UIEventTrigger.current = null; } public static UIEventTrigger current; public List onHoverOver = new List(); public List onHoverOut = new List(); public List onPress = new List(); public List onRelease = new List(); public List onSelect = new List(); public List onDeselect = new List(); public List onClick = new List(); public List onDoubleClick = new List(); public List onDragStart = new List(); public List onDragEnd = new List(); public List onDragOver = new List(); public List onDragOut = new List(); public List onDrag = new List(); }