unity拖拽drag_Unity 拖拽示例
时间: 2023-12-08 21:03:22 浏览: 155
基于Unity实现的rm-vision项目视觉仿真环境c#源码+项目说明.zip
在Unity中,拖拽(drag)是一种非常常见的交互方式,可以用于移动、旋转、缩放等操作。以下是一个简单的拖拽示例:
1. 创建一个立方体对象,将其命名为“DragCube”。
2. 创建一个脚本文件,将其命名为“DragObject”。
3. 将脚本文件“DragObject”附加到“DragCube”对象上。
4. 在脚本文件中添加以下代码:
```csharp
using UnityEngine;
public class DragObject : MonoBehaviour
{
private Vector3 m_Offset;
private void OnMouseDown()
{
m_Offset = gameObject.transform.position -
Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,
Input.mousePosition.y,
Camera.main.WorldToScreenPoint(gameObject.transform.position).z));
}
private void OnMouseDrag()
{
Vector3 newPosition = new Vector3(Input.mousePosition.x,
Input.mousePosition.y,
Camera.main.WorldToScreenPoint(gameObject.transform.position).z);
gameObject.transform.position = Camera.main.ScreenToWorldPoint(newPosition) + m_Offset;
}
}
```
5. 运行游戏,在场景中点击“DragCube”对象并拖动即可看到效果。
以上代码实现了在鼠标点击“DragCube”对象并拖动时,使其在屏幕上跟随鼠标移动,并保持在场景中的位置不变。你可以根据需求修改代码来实现其他的拖拽操作。
阅读全文