You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
398 lines
14 KiB
398 lines
14 KiB
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); |
|
} |
|
}
|
|
|