直接将代码给要移动的物体就可
三维物体拖动
public class 三维物体拖动 : MonoBehaviour
{
Vector3 位置;
float posX;
float posY;
float posZ;
private void OnMouseDown()
{
位置 = Camera.main.WorldToScreenPoint(transform.position);
posX = Input.mousePosition.x - 位置.x;
posY = Input.mousePosition.y - 位置.y;
posZ = Input.mousePosition.z - 位置.z;
}
private void OnMouseDrag()
{
Vector3 curPos = new Vector3(Input.mousePosition.x - posX, Input.mousePosition.y - posY, Input.mousePosition.z - posZ);
Vector3 worldPos = Camera.main.ScreenToWorldPoint(curPos);
transform.position = worldPos;
}
}
二维物体拖动
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class 二维物体拖动 : MonoBehaviour,IDragHandler ,IPointerDownHandler
{
private Vector2 位置;
public void OnDrag(PointerEventData eventData)
{
if (Input .GetMouseButton (0))
{
transform.position = eventData.position - 位置;
}
}
public void OnPointerDown(PointerEventData eventData)
{
位置 = eventData.position - (Vector2)transform.position;
}
}