Unity 物理材质完全指南:Bounciness 与 Friction 的底层求解逻辑 📅 发布时间:2026/8/30 0:53:30 👁 浏览次数: 开场:调了一个数,球真的弹飞了上周做一个小球弹跳的 demo,我把 Bounciness 从 0.3 改到 0.8,本以为会有"稍微更弹"的效果,结果小球直接飞出摄像机外——这种"参数微调、世界大变"的体验,相信每个做过物理玩法的开发者都经历过。更让人抓狂的是:你以为是哪个 C# 脚本偷偷改动了速度,但翻遍代码也没找到;你怀疑是 FixedUpdate 时间步的问题,调了之后手感更怪。其实问题没那么玄——你调的"那个数",就是物理材质(Physic Material)里的 Bounciness 和 Friction。但"调了数就生效"这句话背后,藏着一条完整的因果链:参数存在哪、求解器什么时候读它、读完之后代入哪个方程。这篇文章就顺着这条链,把物理材质从"Inspector 里的两个滑块"还原成求解器里的两行数学。一、物理材质核心概念1.1 Bounciness:法线方向的恢复系数Bounciness 在物理教科书里的正式名字是恢复系数(coefficient of restitution),通常记作 e。它描述的是碰撞前后沿接触法线方向相对速度的比值:e = |碰撞后分离速度| / |碰撞前接近速度|e = 0:完全非弹性碰撞,法向速度清零,物体"贴"在表面上(泥巴砸墙)。e = 1:完全弹性碰撞,法向速度原样反弹,不损失动能(理想弹球)。0~1 之间:现实世界的所有材料。这个定义解释了开场那个事故:e 从 0.3 提到 0.8,意味着每次落地保留的法向速度从 30% 涨到