U
Unity
星辰学院
首页
课程表
章节导览
第 1 课
返回主站
首页
/
第 8 章 · 输入系统
/
第 113 课
LESSON 113 · 输入系统
鼠标输入(位置/点击/滚轮)
鼠标输入已掌握。下一课学触摸输入。
⏱ 约 14 分钟
📊 难度:
入门
🗂 第 8 章 · 输入系统
📍 第 113 / 300 课
课程进度
113 / 300
🎯
本节学习目标
掌握鼠标位置获取
掌握鼠标按键检测
掌握滚轮与增量
🚀
课程导读
射击瞄准、拖拽、缩放视角全靠鼠标。本课把鼠标输入的方方面面讲清楚。
◆
鼠标位置与点击
读位置、读按键。
【位置】Input.mousePosition:鼠标的屏幕坐标(像素,左下角原点)。
【坐标转换】屏幕坐标 → 世界:Camera.main.ScreenToWorldPoint(...)(配合深度);屏幕 → 射线:Camera.main.ScreenPointToRay(第 100 课)。
【左键】Input.GetMouseButtonDown(0):左键按下一瞬;GetMouseButton(0):按住;GetMouseButtonUp(0):松开。
【右键】参数 1;【中键】参数 2。
【使用】射击:GetMouseButtonDown(0) 触发。
【看向鼠标】让 2D/俯视角色朝向鼠标位置:先转世界坐标再 LookAt。
【鼠标悬停 UI】事件系统处理(第 10 章 UI)。
💡
GetMouseButton 的参数:0=左键、1=右键、2=中键。
◆
滚轮与鼠标增量
缩放手感与视角旋转。
【滚轮】Input.GetAxis("Mouse ScrollWheel"):滚动返回 0.1/0/-0.1 等增量值。
【相机缩放】把滚轮值加到相机距离:camDistance -= Input.GetAxis("Mouse ScrollWheel") * zoomSpeed; 并 Clamp 限制范围。
【鼠标移动增量】Input.GetAxis("Mouse X"):鼠标水平移动量;Input.GetAxis("Mouse Y"):垂直移动量。
【视角旋转】用 Mouse X 控制水平旋转、Mouse Y 控制俯仰:
float mx = Input.GetAxis("Mouse X");
transform.Rotate(0, mx * sensitivity, 0);
【第一人称视角】用 Mouse X/Y 控制相机旋转(第 118 课详讲)。
【注意】增量基于“帧间鼠标移动”,与分辨率无关,适合视角控制。
💡
鼠标控制视角 = GetAxis("Mouse X/Y") × 灵敏度,是 FPS 的基础。
⚠
常见错误与排查
⛔
错误:
鼠标位置转世界坐标不对?
原因:
ScreenToWorldPoint 需要 z 值
解决:
转换前先设 mouse.z = 目标深度(如相机距离),或使用 ScreenPointToRay 方案。
★
动手练习
课后小任务(做出来才算真的学会)
用鼠标左键点击时打印点击物体(射线)
用滚轮缩放相机距离
用 Mouse X/Y 实现基本的相机视角旋转
✓
本节小结
鼠标输入已掌握。下一课学触摸输入。
标记为已完成
完成打卡后,主站会实时更新你的学习进度 🎯
← 上一课
键盘按键输入 GetKey 系列
下一课 →
触摸输入与多点触控
↑