399 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			399 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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);
 | |
|     }
 | |
| }
 |