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

重力调节与自定义重力

重力调节已掌握。下一课学移动平台与传送带。

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

🎯本节学习目标

  • 掌握全局重力设置
  • 实现局部重力模拟
  • 理解重力实现原理

🚀课程导读

“月球上跳得高”“太空漂浮”“反转重力”——本课玩转重力。

全局重力设置

改整个世界的地心引力。

  1. 菜单 Edit → Project Settings → Physics → 找到【Gravity】。
  2. 默认是 (0, -9.81, 0):向下 9.81 米/秒²。
  3. 改成 (0, -1, 0):重力变弱(月球感);改成 (0, 9.81, 0):重力向上!
  4. 改小重力:物体下落更慢、跳跃更高。
  5. 【注意】全局重力影响所有带 Use Gravity 的刚体。
  6. 【固定步长】物理模拟与 Fixed Timestep 有关,改重力后物理行为同步变化。
  7. 【建议】一般保持默认,特殊关卡再临时改(用代码恢复)。
💡
重力方向可以为任意向量,做“反转关卡”就把它改成朝上。

自定义重力(局部)

给单个物体“定制引力”。

  1. 方式1:关闭刚体 Use Gravity,自己在 FixedUpdate 里施加恒力模拟:
  2. void FixedUpdate() { rb.AddForce(Vector3.up * localGravity, ForceMode.Acceleration); }
  3. localGravity 可正可负,实现“此物向上飘/向下坠”。
  4. 方式2:施加“向某个中心点”的引力(星球引力):
  5. Vector3 dir = (center - rb.position).normalized; rb.AddForce(dir * gravity, ForceMode.Acceleration);
  6. 【月球漫步】全局重力改 (0,-2,0) + 跳高力调大,体验失重跳跃。
  7. 【太空漂浮】关闭 Use Gravity,用 AddForce 微操。
  8. 【注意】自定义重力时不要勾 Use Gravity,否则叠加。
  9. 【应用】行星引力、磁力场、局部重力平台。
记住:全局重力在 Project Settings;局部重力=关 Use Gravity + 自己 AddForce。

常见错误与排查

错误:物体上下乱飘?
原因:Use Gravity 与自定义力叠加
解决:关闭 Use Gravity 只用自定义力;或反之,别两个都开。

动手练习

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

  • 把全局重力改小体验月球跳跃(记得改回)
  • 给一个物体实现“向上飘”的自定义重力
  • 实现朝某个中心点的引力

本节小结

重力调节已掌握。下一课学移动平台与传送带。

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

← 上一课爆炸与冲击力