鼠标拖动2D物体(图片)
时间: 2023-09-08 22:08:53 浏览: 36
要实现鼠标拖动2D物体的效果,可以按照以下步骤进行:
1. 获取鼠标点击位置的屏幕坐标,以及物体的初始位置。
2. 在鼠标拖动的过程中,不断获取鼠标位置并计算出与初始位置的偏移量。
3. 将偏移量应用到物体的位置上,实现拖动效果。
具体实现可以参考以下代码:
```csharp
using UnityEngine;
public class DragObject : MonoBehaviour
{
private Vector3 m_offset;
private void OnMouseDown()
{
m_offset = transform.position - Camera.main.ScreenToWorldPoint(Input.mousePosition);
}
private void OnMouseDrag()
{
Vector3 currentPos = Camera.main.ScreenToWorldPoint(Input.mousePosition) + m_offset;
transform.position = new Vector3(currentPos.x, currentPos.y, transform.position.z);
}
}
```
在这个示例代码中,我们定义了一个 `DragObject` 类来控制物体的拖动。`OnMouseDown` 函数会在鼠标按下时被调用,获取物体的初始位置和鼠标点击位置的偏移量。`OnMouseDrag` 函数会在鼠标拖动时被调用,计算出当前的位置并将其应用到物体上,实现拖动效果。注意,此代码适用于2D物体,如果需要拖动3D物体,需要将 `z` 坐标也考虑在内。