| namespace UnityEngine.EventSystems | |
| { | |
| /// <summary> | |
| /// Base class that all EventSystem events inherit from. | |
| /// </summary> | |
| public interface IEventSystemHandler | |
| { | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnPointerMove callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IPointerMoveHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Use this callback to detect pointer move events | |
| /// </summary> | |
| void OnPointerMove(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnPointerEnter callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IPointerEnterHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Use this callback to detect pointer enter events | |
| /// </summary> | |
| void OnPointerEnter(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnPointerExit callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IPointerExitHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Use this callback to detect pointer exit events | |
| /// </summary> | |
| void OnPointerExit(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnPointerDown callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IPointerDownHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Use this callback to detect pointer down events. | |
| /// </summary> | |
| void OnPointerDown(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnPointerUp callbacks. | |
| /// Note: In order to receive OnPointerUp callbacks, you must also implement the EventSystems.IPointerDownHandler|IPointerDownHandler interface | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IPointerUpHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Use this callback to detect pointer up events. | |
| /// </summary> | |
| void OnPointerUp(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnPointerClick callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| /// <remarks> | |
| /// Use the IPointerClickHandler Interface to handle click input using OnPointerClick callbacks. Ensure an Event System exists in the Scene to allow click detection. For click detection on non-UI GameObjects, ensure a EventSystems.PhysicsRaycaster is attached to the Camera. | |
| /// </remarks> | |
| /// <example> | |
| /// <code> | |
| /// <![CDATA[ | |
| /// using UnityEngine; | |
| /// using UnityEngine.EventSystems; | |
| /// | |
| /// public class Example : MonoBehaviour, IPointerClickHandler | |
| /// { | |
| /// //Detect if a click occurs | |
| /// public void OnPointerClick(PointerEventData pointerEventData) | |
| /// { | |
| /// //Output to console the clicked GameObject's name and the following message. You can replace this with your own actions for when clicking the GameObject. | |
| /// Debug.Log(name + " Game Object Clicked!"); | |
| /// } | |
| /// } | |
| /// ]]> | |
| ///</code> | |
| /// </example> | |
| public interface IPointerClickHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Use this callback to detect clicks. | |
| /// </summary> | |
| void OnPointerClick(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnBeginDrag callbacks. | |
| /// Note: You need to implement IDragHandler in addition to IBeginDragHandler. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IBeginDragHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Called by a BaseInputModule before a drag is started. | |
| /// </summary> | |
| void OnBeginDrag(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnInitializePotentialDrag callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IInitializePotentialDragHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Called by a BaseInputModule when a drag has been found but before it is valid to begin the drag. | |
| /// </summary> | |
| void OnInitializePotentialDrag(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnDrag callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| /// <example> | |
| /// <code> | |
| /// <![CDATA[ | |
| /// using UnityEngine; | |
| /// using UnityEngine.EventSystems; | |
| /// using UnityEngine.UI; | |
| /// | |
| /// [RequireComponent(typeof(Image))] | |
| /// public class DragMe : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler | |
| /// { | |
| /// public bool dragOnSurfaces = true; | |
| /// | |
| /// private GameObject m_DraggingIcon; | |
| /// private RectTransform m_DraggingPlane; | |
| /// | |
| /// public void OnBeginDrag(PointerEventData eventData) | |
| /// { | |
| /// var canvas = FindInParents<Canvas>(gameObject); | |
| /// if (canvas == null) | |
| /// return; | |
| /// | |
| /// // We have clicked something that can be dragged. | |
| /// // What we want to do is create an icon for this. | |
| /// m_DraggingIcon = new GameObject("icon"); | |
| /// | |
| /// m_DraggingIcon.transform.SetParent(canvas.transform, false); | |
| /// m_DraggingIcon.transform.SetAsLastSibling(); | |
| /// | |
| /// var image = m_DraggingIcon.AddComponent<Image>(); | |
| /// | |
| /// image.sprite = GetComponent<Image>().sprite; | |
| /// image.SetNativeSize(); | |
| /// | |
| /// if (dragOnSurfaces) | |
| /// m_DraggingPlane = transform as RectTransform; | |
| /// else | |
| /// m_DraggingPlane = canvas.transform as RectTransform; | |
| /// | |
| /// SetDraggedPosition(eventData); | |
| /// } | |
| /// | |
| /// public void OnDrag(PointerEventData data) | |
| /// { | |
| /// if (m_DraggingIcon != null) | |
| /// SetDraggedPosition(data); | |
| /// } | |
| /// | |
| /// private void SetDraggedPosition(PointerEventData data) | |
| /// { | |
| /// if (dragOnSurfaces && data.pointerEnter != null && data.pointerEnter.transform as RectTransform != null) | |
| /// m_DraggingPlane = data.pointerEnter.transform as RectTransform; | |
| /// | |
| /// var rt = m_DraggingIcon.GetComponent<RectTransform>(); | |
| /// Vector3 globalMousePos; | |
| /// if (RectTransformUtility.ScreenPointToWorldPointInRectangle(m_DraggingPlane, data.position, data.pressEventCamera, out globalMousePos)) | |
| /// { | |
| /// rt.position = globalMousePos; | |
| /// rt.rotation = m_DraggingPlane.rotation; | |
| /// } | |
| /// } | |
| /// | |
| /// public void OnEndDrag(PointerEventData eventData) | |
| /// { | |
| /// if (m_DraggingIcon != null) | |
| /// Destroy(m_DraggingIcon); | |
| /// } | |
| /// | |
| /// static public T FindInParents<T>(GameObject go) where T : Component | |
| /// { | |
| /// if (go == null) return null; | |
| /// var comp = go.GetComponent<T>(); | |
| /// | |
| /// if (comp != null) | |
| /// return comp; | |
| /// | |
| /// Transform t = go.transform.parent; | |
| /// while (t != null && comp == null) | |
| /// { | |
| /// comp = t.gameObject.GetComponent<T>(); | |
| /// t = t.parent; | |
| /// } | |
| /// return comp; | |
| /// } | |
| /// } | |
| /// ]]> | |
| ///</code> | |
| /// </example> | |
| public interface IDragHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// When dragging is occurring this will be called every time the cursor is moved. | |
| /// </summary> | |
| void OnDrag(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnEndDrag callbacks. | |
| /// Note: You need to implement IDragHandler in addition to IEndDragHandler. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IEndDragHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Called by a BaseInputModule when a drag is ended. | |
| /// </summary> | |
| void OnEndDrag(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnDrop callbacks. | |
| /// </summary> | |
| /// <example> | |
| /// <code> | |
| /// <![CDATA[ | |
| /// using UnityEngine; | |
| /// using UnityEngine.EventSystems; | |
| /// | |
| /// public class DropMe : MonoBehaviour, IDropHandler | |
| /// { | |
| /// public void OnDrop(PointerEventData data) | |
| /// { | |
| /// if (data.pointerDrag != null) | |
| /// { | |
| /// Debug.Log ("Dropped object was: " + data.pointerDrag); | |
| /// } | |
| /// } | |
| /// } | |
| /// ]]> | |
| ///</code> | |
| /// </example> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IDropHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Called by a BaseInputModule on a target that can accept a drop. | |
| /// </summary> | |
| void OnDrop(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnScroll callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IScrollHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Use this callback to detect scroll events. | |
| /// </summary> | |
| void OnScroll(PointerEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnUpdateSelected callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IUpdateSelectedHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Called by the EventSystem when the object associated with this EventTrigger is updated. | |
| /// </summary> | |
| /// <example> | |
| /// <code> | |
| /// <![CDATA[ | |
| /// using UnityEngine; | |
| /// using UnityEngine.EventSystems; | |
| /// | |
| /// public class UpdateSelectedExample : MonoBehaviour, IUpdateSelectedHandler | |
| /// { | |
| /// public void OnUpdateSelected(BaseEventData data) | |
| /// { | |
| /// Debug.Log("OnUpdateSelected called."); | |
| /// } | |
| /// } | |
| /// ]]> | |
| ///</code> | |
| /// </example> | |
| void OnUpdateSelected(BaseEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnSelect callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface ISelectHandler : IEventSystemHandler | |
| { | |
| void OnSelect(BaseEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnDeselect callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IDeselectHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Called by the EventSystem when a new object is being selected. | |
| /// </summary> | |
| void OnDeselect(BaseEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnMove callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface IMoveHandler : IEventSystemHandler | |
| { | |
| /// <summary> | |
| /// Called by a BaseInputModule when a move event occurs. | |
| /// </summary> | |
| void OnMove(AxisEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnSubmit callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface ISubmitHandler : IEventSystemHandler | |
| { | |
| void OnSubmit(BaseEventData eventData); | |
| } | |
| /// <summary> | |
| /// Interface to implement if you wish to receive OnCancel callbacks. | |
| /// </summary> | |
| /// <remarks> | |
| /// Criteria for this event is implementation dependent. For example see StandAloneInputModule. | |
| /// </remarks> | |
| public interface ICancelHandler : IEventSystemHandler | |
| { | |
| void OnCancel(BaseEventData eventData); | |
| } | |
| } | |