完全指南:Bounciness 與 Friction 的底層求解邏輯)
開場:調(diào)了一個數(shù),球真的彈飛了上周做一個小球彈跳的 demo,我把 Bounciness 從 0.3 改到 0.8,本以為會有"稍微更彈"的效果,結(jié)果小球直接飛出攝像機外——這種"參數(shù)微調(diào)、世界大變"的體驗,相信每個做過物理玩法的開發(fā)者都經(jīng)歷過。更讓人抓狂的是:你以為是哪個 C# 腳本偷偷改動了速度,但翻遍代碼也沒找到;你懷疑是 FixedUpdate 時間步的問題,調(diào)了之后手感更怪。其實問題沒那么玄——你調(diào)的"那個數(shù)",就是物理材質(zhì)(Physic Material)里的 Bounciness 和 Friction。但"調(diào)了數(shù)就生效"這句話背后,藏著一條完整的因果鏈:參數(shù)存在哪、求解器什么時候讀它、讀完之后代入哪個方程。這篇文章就順著這條鏈,把物理材質(zhì)從"Inspector 里的兩個滑塊"還原成求解器里的兩行數(shù)學(xué)。一、物理材質(zhì)核心概念1.1 Bounciness:法線方向的恢復(fù)系數(shù)Bounciness 在物理教科書里的正式名字是恢復(fù)系數(shù)(coefficient of restitution),通常記作 e。它描述的是碰撞前后沿接觸法線方向相對速度的比值:e = |碰撞后分離速度| / |碰撞前接近速度|e = 0:完全非彈性碰撞,法向速度清零,物體"貼"在表面上(泥巴砸墻)。e = 1:完全彈性碰撞,法向速度原樣反彈,不損失動能(理想彈球)。0~1 之間:現(xiàn)實世界的所有材料。這個定義解釋了開場那個事故:e 從 0.3 提到 0.8,意味著每次落地保留的法向速度從 30% 漲到