namespace UnityEngine.EventSystems
{
///
/// Base class that all EventSystem events inherit from.
///
public interface IEventSystemHandler
{
}
///
/// Interface to implement if you wish to receive OnPointerMove callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IPointerMoveHandler : IEventSystemHandler
{
///
/// Use this callback to detect pointer move events
///
void OnPointerMove(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnPointerEnter callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IPointerEnterHandler : IEventSystemHandler
{
///
/// Use this callback to detect pointer enter events
///
void OnPointerEnter(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnPointerExit callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IPointerExitHandler : IEventSystemHandler
{
///
/// Use this callback to detect pointer exit events
///
void OnPointerExit(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnPointerDown callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IPointerDownHandler : IEventSystemHandler
{
///
/// Use this callback to detect pointer down events.
///
void OnPointerDown(PointerEventData eventData);
}
///
/// 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
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IPointerUpHandler : IEventSystemHandler
{
///
/// Use this callback to detect pointer up events.
///
void OnPointerUp(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnPointerClick callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
///
/// 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.
///
///
///
///
///
///
public interface IPointerClickHandler : IEventSystemHandler
{
///
/// Use this callback to detect clicks.
///
void OnPointerClick(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnBeginDrag callbacks.
/// Note: You need to implement IDragHandler in addition to IBeginDragHandler.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IBeginDragHandler : IEventSystemHandler
{
///
/// Called by a BaseInputModule before a drag is started.
///
void OnBeginDrag(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnInitializePotentialDrag callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IInitializePotentialDragHandler : IEventSystemHandler
{
///
/// Called by a BaseInputModule when a drag has been found but before it is valid to begin the drag.
///
void OnInitializePotentialDrag(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnDrag callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
///
///
/// (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.sprite = GetComponent().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();
/// 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(GameObject go) where T : Component
/// {
/// if (go == null) return null;
/// var comp = go.GetComponent();
///
/// if (comp != null)
/// return comp;
///
/// Transform t = go.transform.parent;
/// while (t != null && comp == null)
/// {
/// comp = t.gameObject.GetComponent();
/// t = t.parent;
/// }
/// return comp;
/// }
/// }
/// ]]>
///
///
public interface IDragHandler : IEventSystemHandler
{
///
/// When dragging is occurring this will be called every time the cursor is moved.
///
void OnDrag(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnEndDrag callbacks.
/// Note: You need to implement IDragHandler in addition to IEndDragHandler.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IEndDragHandler : IEventSystemHandler
{
///
/// Called by a BaseInputModule when a drag is ended.
///
void OnEndDrag(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnDrop callbacks.
///
///
///
///
///
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IDropHandler : IEventSystemHandler
{
///
/// Called by a BaseInputModule on a target that can accept a drop.
///
void OnDrop(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnScroll callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IScrollHandler : IEventSystemHandler
{
///
/// Use this callback to detect scroll events.
///
void OnScroll(PointerEventData eventData);
}
///
/// Interface to implement if you wish to receive OnUpdateSelected callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IUpdateSelectedHandler : IEventSystemHandler
{
///
/// Called by the EventSystem when the object associated with this EventTrigger is updated.
///
///
///
///
///
///
void OnUpdateSelected(BaseEventData eventData);
}
///
/// Interface to implement if you wish to receive OnSelect callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface ISelectHandler : IEventSystemHandler
{
void OnSelect(BaseEventData eventData);
}
///
/// Interface to implement if you wish to receive OnDeselect callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IDeselectHandler : IEventSystemHandler
{
///
/// Called by the EventSystem when a new object is being selected.
///
void OnDeselect(BaseEventData eventData);
}
///
/// Interface to implement if you wish to receive OnMove callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface IMoveHandler : IEventSystemHandler
{
///
/// Called by a BaseInputModule when a move event occurs.
///
void OnMove(AxisEventData eventData);
}
///
/// Interface to implement if you wish to receive OnSubmit callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface ISubmitHandler : IEventSystemHandler
{
void OnSubmit(BaseEventData eventData);
}
///
/// Interface to implement if you wish to receive OnCancel callbacks.
///
///
/// Criteria for this event is implementation dependent. For example see StandAloneInputModule.
///
public interface ICancelHandler : IEventSystemHandler
{
void OnCancel(BaseEventData eventData);
}
}