Unity实现鼠标拖动物体移动
1.打开Unity创建一个场景和一个3D物体。
2.创建一个代码挂载到3D物体代码如下。
using UnityEngine;
public class Move3DObject : MonoBehaviour
{
private bool isClick = false;
private Transform curTf = null;
private Vector3 oriMousePos;
private Vector3 oriObjectScreenPos;
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
{
curTf = hit.transform;
oriObjectScreenPos=Camera.main.WorldToScreenPoint(curTf.position);
oriMousePos = Input.mousePosition;
}
isClick = !isClick;
}
if (isClick)
{
if (curTf != null)
{
Vector3 curMousePos = Input.mousePosition;
Vector3 mouseOffset = curMousePos - oriMousePos;
Vector3 curObjectScreenPos = oriObjectScreenPos + mouseOffset;
Vector3 curObjectWorldPos = Camera.main.ScreenToWorldPoint(curObjectScreenPos);
curTf.position = curObjectWorldPos;
}
}
}
}
3.点击运行就可以使用鼠标拖动物体移动了。