Unity 拖拽3D物体到目标位置大体思路
1.监听鼠标的落下 拖拽 和松开 可以使用OnMouseDown OnMouseDrag OnMouseUp
2 设定目标地点 高亮显示 (使用了高亮插件)
3 拖拽物体跟随鼠标移动 在OnMouseDrag中使用 this.transform.position = new Vector3(hit.point.x, hit.point.y + height, hit.point.z);
是物体一直跟随在鼠标
上代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveCube : MonoBehaviour
{
public LayerMask layerMask;//鼠标射线可移动的范围
public Camera cam;//摄像机
public Transform oldTrans; //物体原来的位置
public float moveTime;
public float height;//移动物体距离鼠标的高度
private Ray ray;
private RaycastHit hit;
void Start()
{
}
//鼠标落下
void OnMouseDown()
{
AwakeMove();
//高亮目标地点
HightOpen(this.gameObject.name);
}
//开始拖拽
void OnMouseDrag()
{
StartMove();
}
//鼠标松开
void OnMouseUp()
{
IsArrive();
HightClose(this.g