首页/ 第 8 章 · 输入系统/ 第 113 课
LESSON 113 · 输入系统

鼠标输入(位置/点击/滚轮)

鼠标输入已掌握。下一课学触摸输入。

⏱ 约 14 分钟📊 难度:入门🗂 第 8 章 · 输入系统📍 第 113 / 300 课
课程进度
113 / 300

🎯本节学习目标

  • 掌握鼠标位置获取
  • 掌握鼠标按键检测
  • 掌握滚轮与增量

🚀课程导读

射击瞄准、拖拽、缩放视角全靠鼠标。本课把鼠标输入的方方面面讲清楚。

鼠标位置与点击

读位置、读按键。

  1. 【位置】Input.mousePosition:鼠标的屏幕坐标(像素,左下角原点)。
  2. 【坐标转换】屏幕坐标 → 世界:Camera.main.ScreenToWorldPoint(...)(配合深度);屏幕 → 射线:Camera.main.ScreenPointToRay(第 100 课)。
  3. 【左键】Input.GetMouseButtonDown(0):左键按下一瞬;GetMouseButton(0):按住;GetMouseButtonUp(0):松开。
  4. 【右键】参数 1;【中键】参数 2。
  5. 【使用】射击:GetMouseButtonDown(0) 触发。
  6. 【看向鼠标】让 2D/俯视角色朝向鼠标位置:先转世界坐标再 LookAt。
  7. 【鼠标悬停 UI】事件系统处理(第 10 章 UI)。
💡
GetMouseButton 的参数:0=左键、1=右键、2=中键。

滚轮与鼠标增量

缩放手感与视角旋转。

  1. 【滚轮】Input.GetAxis("Mouse ScrollWheel"):滚动返回 0.1/0/-0.1 等增量值。
  2. 【相机缩放】把滚轮值加到相机距离:camDistance -= Input.GetAxis("Mouse ScrollWheel") * zoomSpeed; 并 Clamp 限制范围。
  3. 【鼠标移动增量】Input.GetAxis("Mouse X"):鼠标水平移动量;Input.GetAxis("Mouse Y"):垂直移动量。
  4. 【视角旋转】用 Mouse X 控制水平旋转、Mouse Y 控制俯仰:
  5. float mx = Input.GetAxis("Mouse X");
  6. transform.Rotate(0, mx * sensitivity, 0);
  7. 【第一人称视角】用 Mouse X/Y 控制相机旋转(第 118 课详讲)。
  8. 【注意】增量基于“帧间鼠标移动”,与分辨率无关,适合视角控制。
💡
鼠标控制视角 = GetAxis("Mouse X/Y") × 灵敏度,是 FPS 的基础。

常见错误与排查

错误:鼠标位置转世界坐标不对?
原因:ScreenToWorldPoint 需要 z 值
解决:转换前先设 mouse.z = 目标深度(如相机距离),或使用 ScreenPointToRay 方案。

动手练习

课后小任务(做出来才算真的学会)

  • 用鼠标左键点击时打印点击物体(射线)
  • 用滚轮缩放相机距离
  • 用 Mouse X/Y 实现基本的相机视角旋转

本节小结

鼠标输入已掌握。下一课学触摸输入。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课键盘按键输入 GetKey 系列