eventData | Current event data. |
Called by the EventSystem every time the pointer is moved during dragging.
See EventTrigger for example usage.
//Attach this script to the GameObject you would like to detect dragging on //Attach an Event Trigger component to the GameObject (Click the Add Component button and go to Event>Event Trigger) //Make sure the Camera you are using has a Physics Raycaster (Click the Add Component button and go to Event>Physics Raycaster) so it can detect clicks on GameObjects.
using UnityEngine; using UnityEngine.EventSystems;
public class OnDragExample : MonoBehaviour { void Start() { EventTrigger trigger = GetComponent<EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.Drag; entry.callback.AddListener((data) => { OnDragDelegate((PointerEventData)data); }); trigger.triggers.Add(entry); }
public void OnDragDelegate(PointerEventData data) { Debug.Log("Dragging."); } }
The next example allows you to move a GameObject by dragging.
using UnityEngine; using UnityEngine.EventSystems;
public class OnDragExample : MonoBehaviour { void Start() { //Fetch the Event Trigger component from your GameObject EventTrigger trigger = GetComponent<EventTrigger>(); //Create a new entry for the Event Trigger EventTrigger.Entry entry = new EventTrigger.Entry(); //Add a Drag type event to the Event Trigger entry.eventID = EventTriggerType.Drag; //call the OnDragDelegate function when the Event System detects dragging entry.callback.AddListener((data) => { OnDragDelegate((PointerEventData)data); }); //Add the trigger entry trigger.triggers.Add(entry); }
public void OnDragDelegate(PointerEventData data) { //Create a ray going from the camera through the mouse position Ray ray = Camera.main.ScreenPointToRay(data.position); //Calculate the distance between the Camera and the GameObject, and go this distance along the ray Vector3 rayPoint = ray.GetPoint(Vector3.Distance(transform.position, Camera.main.transform.position)); //Move the GameObject when you drag it transform.position = rayPoint; } }
Did you find this page useful? Please give it a rating: