using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
/// <summary>
/// 精准拖拽当前 UI
/// </summary>
public class UIDrag : MonoBehaviour,IPointerDownHandler,IDragHandler
{
//1.按下时计算偏移量
private Vector3 offset;
public void OnPointerDown(PointerEventData eventData)
{
//transform.position
//eventData.position
Vector3 downPoint;
RectTransformUtility.ScreenPointToWorldPointInRectangle(transform as RectTransform, eventData.position, eventData.pressEventCamera, out downPoint);
offset = transform.parent.position - downPoint;
}
//2.拖拽时累加偏移量
public void OnDrag(PointerEventData eventData)
{
Vector3 pointerPos;
RectTransformUtility.ScreenPointToWorldPointInRectangle(transform as RectTransform, eventData.position, eventData.pressEventCamera, out pointerPos);
transform.parent.position = pointerPos + offset;
}
}
这里设置的拖动图片,父物体transform改变,