在Unity 2D中使用Input Manager实现鼠标控制角色的移动的代码
时间: 2024-10-19 20:10:26 浏览: 84
在Unity 2D中,你可以使用Input Manager来处理用户的输入,包括鼠标事件。下面是一个简单的示例,展示如何通过鼠标左键和右键来分别控制角色的移动:
首先,在`Update()`函数中获取鼠标的输入:
```csharp
using UnityEngine;
using UnityEngine.InputSystem;
public class MouseControl : MonoBehaviour
{
[SerializeField] private CharacterController controller;
private InputAction moveLeftRight;
private InputAction moveUpDown;
void Start()
{
// 初始化Input Action
moveLeftRight = GetAction<MoveHorizontal>();
moveUpDown = GetAction<MoveVertical>();
}
void Update()
{
float mouseX = Input.mousePosition.x;
float mouseY = Input.mousePosition.y;
// 鼠标左键移动
if (moveLeftRight.IsPressed())
controller.SimpleMove(new Vector3(mouseX * speed, 0, -mouseY * speed)); // 假设speed是你游戏中定义的速度变量
// 鼠标右键移动(假设右键向上移动)
if (moveUpDown.IsPressed())
controller.SimpleMove(Vector3.up * (mouseY * upwardSpeed)); // 同理,upwardSpeed是另一个速度值
}
}
```
在这个例子中,我们创建了两个`InputAction`实例(`moveLeftRight`和`moveUpDown`),然后检查它们是否被按下。如果左键被按下,我们就用鼠标的位置值乘以预设的速度,调整角色沿x轴和y轴的方向移动。右键通常用于上移,我们同样计算鼠标位置并按比例移动角色向上。
记得在项目设置里启用Input System,并在Inspector窗口中连接好鼠标输入到相应的Input Actions。
阅读全文