首页/ 第 7 章 · 物理系统/ 第 95 课
LESSON 95 · 物理系统

扭矩与角速度 Torque

扭矩与角速度已掌握。下一课学触发器 Trigger 与碰撞事件。

⏱ 约 12 分钟📊 难度:入门🗂 第 7 章 · 物理系统📍 第 95 / 300 课
课程进度
95 / 300

🎯本节学习目标

  • 理解扭矩概念
  • 掌握 AddTorque 用法
  • 掌握角速度控制

🚀课程导读

AddForce 让物体“移动”,AddTorque 让物体“转动”。本课学习旋转类物理。

扭矩基础

“旋转的力”。

  1. 扭矩(Torque)= 让刚体绕轴旋转的“转动力”。
  2. 语法:rb.AddTorque(Vector3 轴 * 力度);
  3. 例:rb.AddTorque(Vector3.up * 10f); 让物体绕 Y 轴旋转。
  4. 【旋转轴】绕哪个轴转就用哪个轴的向量:Vector3.right(绕 X)、Vector3.up(绕 Y)、Vector3.forward(绕 Z)。
  5. 【Angular Velocity 角速度】物体当前的旋转速度:rb.angularVelocity 可读可设。
  6. 【直接设角速度】rb.angularVelocity = Vector3.up * 3f; 让物体以固定速度自转。
  7. 【Angular Drag 角阻尼】让旋转逐渐停止的参数(刚体属性)。
  8. 【ForceMode 同样适用】AddTorque 也有 ForceMode(Impulse 可瞬间给旋转冲量)。
💡
需要“一直转”用角速度(angularVelocity),需要“被推转”用 AddTorque。

实战:旋转陀螺与翻滚

两个小练习。

  1. 【自转陀螺】给圆柱(带刚体)写:void FixedUpdate() { rb.AddTorque(Vector3.up * 5f); } 播放:圆柱持续旋转。
  2. 【翻滚方块】给方块 AddTorque(Vector3.right * 30f, ForceMode.Impulse) 一次性翻出去。
  3. 【角速度设定】rb.angularVelocity = Vector3.up * 2f; 物体匀速自转,不受重力倾斜影响(配合 Is Kinematic 更稳)。
  4. 【让旋转减速】把 Angular Drag 调大,旋转逐渐停止。
  5. 【检测是否在旋转】rb.angularVelocity.magnitude > 0.1f 判断。
  6. 【应用】齿轮转动、陀螺、翻滚的箱子、转动的风扇(风扇更推荐第 81 课 Rotate 或动画)。
  7. 【注意】纯视觉旋转(不参与物理)用 transform.Rotate 更省;物理旋转才用 Torque。
⚠️
刚体旋转与 transform.Rotate 混用会互相干扰,二选一:物理对象用 Torque/angularVelocity,普通对象用 Rotate。

常见错误与排查

错误:物体不转?
原因:无刚体、扭矩太小或角阻尼过大
解决:确认有 Rigidbody;调大扭矩;把 Angular Drag 调小。

动手练习

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

  • 让一个圆柱持续绕 Y 轴旋转
  • 用 Impulse 扭矩让方块翻滚
  • 用 angularVelocity 设定固定旋转速度

本节小结

扭矩与角速度已掌握。下一课学触发器 Trigger 与碰撞事件。

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

← 上一课给物体施加力 AddForce