//---------------------------------------------- // NGUI: Next-Gen UI kit // Copyright © 2011-2015 Tasharen Entertainment //---------------------------------------------- using UnityEngine; using System.Collections.Generic; /// /// Attaching this script to an object will let you trigger remote functions using NGUI events. /// [AddComponentMenu("NGUI/Interaction/Event Trigger")] public class UIEventTrigger : MonoBehaviour { static public 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(); #region add by chenbin public List onBecameVisible = new List(); public List onBecameInvisible = new List(); #endregion void OnHover (bool isOver) { if (current != null) return; current = this; if (isOver) EventDelegate.Execute(onHoverOver, gameObject); //modify by chenbin else EventDelegate.Execute(onHoverOut, gameObject); // modify by chenbin current = null; } void OnPress (bool pressed) { if (current != null) return; current = this; if (pressed) EventDelegate.Execute(onPress, gameObject); // modify by chenbin else EventDelegate.Execute(onRelease, gameObject); // modify by chenbin current = null; } void OnSelect (bool selected) { if (current != null) return; current = this; if (selected) EventDelegate.Execute(onSelect, gameObject); // modify by chenbin else EventDelegate.Execute(onDeselect, gameObject); // modify by chenbin current = null; } void OnClick () { if (current != null) return; current = this; EventDelegate.Execute(onClick, gameObject); // modify by chenbin current = null; } void OnDoubleClick () { if (current != null) return; current = this; EventDelegate.Execute(onDoubleClick, gameObject); // modify by chenbin current = null; } void OnDragStart () { if (current != null) return; current = this; EventDelegate.Execute(onDragStart, gameObject); // modify by chenbin current = null; } void OnDragEnd () { if (current != null) return; current = this; EventDelegate.Execute(onDragEnd, gameObject); // modify by chenbin current = null; } void OnDragOver (GameObject go) { if (current != null) return; current = this; EventDelegate.Execute(onDragOver, go); // modify by chenbin current = null; } void OnDragOut (GameObject go) { if (current != null) return; current = this; EventDelegate.Execute(onDragOut, go); // modify by chenbin current = null; } void OnDrag (Vector2 delta) { if (current != null) return; current = this; EventDelegate.Execute(onDrag, gameObject); // modify by chenbin current = null; } #region add by chenbin public void OnBecameInvisible () { EventDelegate.Execute(onBecameInvisible, gameObject); // modify by chenbin } public void OnBecameVisible () { EventDelegate.Execute(onBecameVisible, gameObject); // modify by chenbin } #endregion }