编程怎么让物体跟鼠标动

时间:2025-01-27 06:37:41 网络游戏

在Unity3D中,你可以通过编写C脚本来实现物体跟随鼠标移动的功能。以下是一个简单的示例,展示了如何实现这一功能:

创建一个新的Unity3D项目 ,并创建一个游戏对象(例如,一个立方体)。

创建一个新的C脚本,例如命名为`MouseFollow`,并将其附加到游戏对象上。

编写`MouseFollow`脚本的代码:

```csharp

using UnityEngine;

public class MouseFollow : MonoBehaviour

{

public Camera mainCamera; // 指定主相机

public Transform target; // 要跟随的物体

private bool isDown = false; // 是否按下鼠标

private Vector3 targetWTSP; // 记录初始化时目标物体的屏幕坐标

void Start()

{

targetWTSP = mainCamera.WorldToScreenPoint(target.position);

}

void Update()

{

if (isDown)

{

Vector3 mousePos = Input.mousePosition;

Vector3 worldPos = mainCamera.ScreenToWorldPoint(mousePos);

worldPos.z = targetWTSP.z; // 保持Z坐标不变

target.position = worldPos;

}

}

void OnMouseDown()

{

isDown = true;

targetWTSP = mainCamera.WorldToScreenPoint(target.position);

}

void OnMouseUp()

{

isDown = false;

}

}

```

在Unity编辑器中,将`mainCamera`和`target`变量分别设置为你场景中的主相机和需要跟随的物体。

运行场景,你应该能看到物体跟随鼠标移动的效果。

解释

`Start`方法:

在脚本开始时,将目标物体的初始位置从世界坐标转换为屏幕坐标,并存储在`targetWTSP`变量中。

`Update`方法:在每一帧中,检查鼠标是否按下。如果按下,将鼠标位置从屏幕坐标转换回世界坐标,并保持Z坐标不变,然后更新目标物体的位置。

`OnMouseDown`方法:当鼠标按下时,记录当前目标物体的屏幕坐标。

`OnMouseUp`方法:当鼠标抬起时,将`isDown`标志设置为`false`。

这个脚本实现了基本的物体跟随鼠标移动功能。你可以根据需要调整代码,例如添加平滑移动效果或处理其他交互逻辑。