Unity新Input System实现鼠标拖拽角色上下左右移动
时间: 2024-10-19 12:13:19 浏览: 109
Unity的新Input System提供了一种更现代的方式来处理玩家输入,包括鼠标操作。如果你想让角色通过鼠标拖拽来实现上下左右移动,你可以按照以下步骤进行:
1. **设置Input Manager**:
首先,在项目设置中启用新的Input System,并配置好鼠标输入关联到`MouseMove`事件。
2. **创建脚本**:
创建一个新的C#脚本,例如`DraggableCharacterController`,并将其附加到你的角色上。在这个脚本里,你需要监听`OnMouseMove`事件。
```csharp
using UnityEngine;
using UnityEngine.InputSystem;
public class DraggableCharacterController : MonoBehaviour
{
public float speed = 5f; // 角色移动速度
private Vector2 mousePosition;
private Vector3 movementDirection;
private void Update()
{
// 更新鼠标位置
if (InputSystem.ReadMouseButtonDown(0))
mousePosition = Input.mousePosition;
if (InputSystem.ReadMouseButtonUp(0))
{
// 当鼠标松开停止移动
movementDirection = Vector3.zero;
}
else
{
// 计算方向并转换为世界坐标
movementDirection = Vector3.Lerp(mousePosition, Input.mousePosition, 0.1f);
movementDirection.z = 0;
movementDirection = Camera.main.ScreenToWorldPoint(movementDirection) - transform.position;
}
// 根据速度和方向移动角色
transform.Translate(Vector3.forward * movementDirection.x, movementDirection.y, 0, Space.World);
}
}
```
3. **调整和测试**:
设置好后,运行游戏,当鼠标按下并拖动时,角色应该会跟随鼠标移动。记得在场景中设置好角色的运动限制,比如碰撞检测等。
阅读全文