unity 物体鼠标拖动效果
时间: 2023-09-08 08:08:27 浏览: 108
Unity实现鼠标拖动3D物体
可以通过以下代码实现:
首先,在需要拖动的物体上添加一个脚本:
```c#
using UnityEngine;
public class DragObject : MonoBehaviour
private Vector3 mOffset;
private float mZCoord;
private void OnMouseDown()
{
mZCoord = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
mOffset = gameObject.transform.position - GetMouseWorldPos();
}
private Vector3 GetMouseWorldPos()
{
Vector3 mousePoint = Input.mousePosition;
mousePoint.z = mZCoord;
return Camera.main.ScreenToWorldPoint(mousePoint);
}
private void OnMouseDrag()
{
transform.position = GetMouseWorldPos() + mOffset;
}
}
```
然后,在场景中找到需要拖动的物体,将上述脚本添加到该物体上即可。这样,当你在运行游戏时,可以使用鼠标左键拖动该物体。
注意:如果需要拖动的物体有碰撞器(比如一个静态的墙壁),则需要将碰撞器的 isTrigger 属性设置为 true,否则无法拖动。
阅读全文