unity 鼠标拖动不规则图片
时间: 2025-07-05 21:03:48 浏览: 14
### 实现鼠标拖动不规则形状图片
为了实现在 Unity 中鼠标拖动不规则形状的图片,可以采用带有特定碰撞器(如 `Polygon Collider 2D`)的方法来精确检测鼠标的交互区域[^3]。
#### 创建带碰撞体的对象
首先,在场景中创建一个 GameObject 并为其添加 Sprite Renderer 组件用于显示图像。接着给该对象附加合适的碰撞组件,对于复杂轮廓的图形推荐使用 `Polygon Collider 2D` 来匹配实际外形边界。
```csharp
// 添加此脚本至目标物体上
using UnityEngine;
public class DragAndDrop : MonoBehaviour
{
private Vector3 offset;
private bool isDragging = false;
void OnMouseDown()
{
// 当点击时计算偏移量
offset = transform.position - Camera.main.ScreenToWorldPoint(Input.mousePosition);
isDragging = true;
}
void OnMouseUp()
{
isDragging = false;
}
void Update()
{
if (isDragging)
{
Vector3 mousePos = Input.mousePosition;
Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
// 更新位置并保持原始Z轴不变
transform.position = new Vector3(worldPos.x, worldPos.y, transform.position.z) + offset;
}
}
}
```
通过上述 C# 脚本逻辑处理用户的输入事件,当玩家按下左键并且光标位于具有指定碰撞器的游戏物件之上时触发拖拽行为;释放按钮则停止移动操作。同时注意调整坐标转换以适应不同的摄像机设置情况[^2]。
阅读全文
相关推荐


















