U
Unity
星辰学院
首页
课程表
章节导览
第 1 课
返回主站
首页
/
第 7 章 · 物理系统
/
第 97 课
LESSON 97 · 物理系统
刚体约束与 Sleep、碰撞检测模式
约束与检测模式已掌握。下一课学关节 Joint。
⏱ 约 13 分钟
📊 难度:
入门
🗂 第 7 章 · 物理系统
📍 第 97 / 300 课
课程进度
97 / 300
🎯
本节学习目标
掌握刚体约束冻结
理解 Sleep 机制
掌握碰撞检测模式
🚀
课程导读
“让车轮只滚不滑”“防止高速穿透”……本课解决物理进阶细节。
◆
刚体 Constraints 约束
冻结某些轴的移动/旋转。
在刚体组件的【Constraints】区域,有 Freeze Position(冻结位置)与 Freeze Rotation(冻结旋转)。
每个轴可单独勾选:Freeze Position Y 勾选 = 物体不会沿 Y 轴移动(可用于锁定高度)。
Freeze Rotation X/Z 勾选 = 物体不会向侧倾倒(做“不倒的角色”常用)。
【应用】角色/车辆防止翻倒:冻结 Rotation X 和 Z。
【应用】只让物体水平移动:冻结 Position Y。
【应用】飞机不翻滚:冻结部分旋转轴。
【注意】约束对刚体“物理运动”生效;transform 直接改位置仍可动。
💡
角色控制器常用:冻结旋转 X/Z,避免人物被撞倒乱滚。
◆
Sleep 休眠与碰撞检测
性能与防穿透。
【Sleep 休眠】刚体静止一段时间后进入“睡眠”,停止物理计算,省性能。
【唤醒】受到碰撞/力时自动唤醒。
【判断休眠】rb.IsSleeping() 返回 bool;rb.Sleep()/rb.WakeUp() 手动控制。
【Sleep Threshold】刚体属性:休眠阈值(速度低于此值即入睡),调小更不易睡(默认 0.005)。
【Collision Detection 碰撞检测模式】
Discrete(离散,默认):速度太快可能穿透薄墙。
Continuous:持续检测,防止高速穿透(对快速子弹/角色推荐,成本略高)。
Continuous Dynamic:与 Continuous 配合的动态对象。
Continuous Speculative:折中方案。
【应用】高速子弹、快速移动角色设 Continuous,避免“穿墙”。
⚠️
高速物体穿透是经典 bug,设置 Collision Detection=Continuous 能解决,但别全开(性能)。
⚠
常见错误与排查
⛔
错误:
角色撞一下就被撞飞乱滚?
原因:
旋转未冻结
解决:
在刚体 Constraints 里勾选 Freeze Rotation X 与 Z。
★
动手练习
课后小任务(做出来才算真的学会)
做一个只水平移动不倾倒的方块
体验刚体休眠与唤醒
给高速子弹设 Continuous 防穿透
✓
本节小结
约束与检测模式已掌握。下一课学关节 Joint。
标记为已完成
完成打卡后,主站会实时更新你的学习进度 🎯
← 上一课
触发器 Trigger 与碰撞事件
下一课 →
关节 Joint 详解
↑