首页/ 第 14 章 · 3D 游戏进阶/ 第 228 课
LESSON 228 · 3D 游戏进阶

第三人称控制器 TPS

第三人称控制器完成。下一课整合 3D 角色动画。

⏱ 约 16 分钟📊 难度:入门🗂 第 14 章 · 3D 游戏进阶📍 第 228 / 300 课
课程进度
228 / 300

🎯本节学习目标

  • 实现跟随相机
  • 实现角色控制
  • 实现相机旋转

🚀课程导读

“看着角色背影”操作——第三人称是动作游戏主流。本课用 Cinemachine 高效实现。

Cinemachine 跟随相机

专业“跟拍”。

  1. 【安装】Window → Package Manager → 搜 Cinemachine → Install。
  2. 【创建】菜单 Cinemachine → Create 2D/3D Camera,自动生成 CM vcam 并接管 Main Camera。
  3. 【Cinemachine 结构】CinemachineBrain(挂 Main Camera)+ CM vcam(虚拟相机,定义视角)。
  4. 【Follow】选中 vcam,把 Follow 槽拖入玩家对象。
  5. 【Look At】把 Look At 槽拖入角色头部/身体。
  6. 【Body 属性】在 vcam 的 Inspector:Orbital Transposer(轨道跟随)或 Framing Transposer(跟随偏移)。
  7. 【Framing Transposer】常用:Damping 平滑、Follow Offset 偏移(后上方)。
  8. 【效果】播放后相机平滑跟随玩家。
  9. 【注意】CM vcam 有优先级,多个 vcam 切换按优先级(第 229 课)。
  10. 【完成】专业跟拍相机就绪!
  11. 【说明】Cinemachine 是官方相机系统,省去手写跟随。
💡
Cinemachine = 官方“跟拍师”:Follow+LookAt+Damping 三参数,专业相机手到擒来。

第三人称角色控制

移动 + 朝向。

  1. 【移动】用 CharacterController(第 227 课)或 Rigidbody。
  2. 【朝向】角色朝移动方向旋转(平滑):
  3. public Transform cam; // 相机
  4. void Update() {
  5. Vector2 input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
  6. if (input.magnitude > 0.1f) {
  7. // 基于相机方向计算移动
  8. Vector3 forward = cam.forward; forward.y = 0; forward.Normalize();
  9. Vector3 right = cam.right; right.y = 0; right.Normalize();
  10. Vector3 moveDir = (forward * input.y + right * input.x).normalized;
  11. // 旋转朝向
  12. Quaternion target = Quaternion.LookRotation(moveDir);
  13. transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * 10f);
  14. cc.Move(moveDir * speed * Time.deltaTime);
  15. }
  16. }
  17. 【说明】移动方向以相机为基准(W=远离相机,即屏幕“前”)。
  18. 【平滑转向】Slerp 让角色转身自然。
  19. 【跳跃】同第 227 课(加 y 速度)。
  20. 【测试】WASD 移动、角色朝向移动方向、相机跟随。
  21. 【注意】第三人称角色通常面向“移动方向”而非鼠标。
  22. 【完成】第三人称控制完成!
第三人称 = Cinemachine 跟拍 + 相机基准移动 + Slerp 平滑转向。

常见错误与排查

错误:相机穿墙/乱转?
原因:Follow 设置错误或没配 Body
解决:检查 vcam 的 Follow/LookAt 引用;Body 用 Framing Transposer 配好 Offset。

动手练习

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

  • 用 Cinemachine 做跟随相机
  • 实现相机基准的移动
  • 实现平滑朝向旋转

本节小结

第三人称控制器完成。下一课整合 3D 角色动画。

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

← 上一课第一人称控制器 FPS