ProjectSeeting-物理 (Physics)
使用?Physics?設(shè)置(主菜單:Edit?>?Project Settings,然后選擇?Physics?類別)可應(yīng)用 3D 物理全局設(shè)置。
注意:要管理 2D 物理的全局設(shè)置,請改用?Physics 2D?設(shè)置。

這些設(shè)置定義了物理模擬精度的限制。一般來說,更精確的模擬需要更多的處理開銷,因此這些設(shè)置提供了一種精度與性能的折衷方法。有關(guān)更多信息,請參閱本手冊的物理部分。
屬性????????????????????????????????????????????????????????????????????????????功能
Gravity????????????使用 x、y 和 z 軸設(shè)置應(yīng)用于所有剛體組件的重力。對于真實的重力設(shè)置,應(yīng)將負(fù)數(shù)應(yīng)用于 y 軸。重力以每平方秒的世界單位定義。
注意:如果增大重力,可能還需要增大?Default Solver Iterations?值以保持穩(wěn)定的接觸。
Default Material????設(shè)置在沒有為單獨碰撞體分配材質(zhì)的情況下需要使用的默認(rèn)物理材質(zhì)。
Bounce Threshold????設(shè)置速度值。如果兩個碰撞對象的相對速度低于此值,則它們在碰撞后不會相互反彈。此值還可以減少抖動,因此不建議將其設(shè)置為非常低的值。
Sleep Threshold設(shè)????置一個全局能量閾值;當(dāng)?shù)陀谠撻撝禃r,非運動剛體(即不受物理系統(tǒng)控制的剛體)可進(jìn)入睡眠狀態(tài)。剛體處于睡眠狀態(tài)不會每幀更新,因此可減少資源消耗。如果剛體的動能除以其質(zhì)量低于此閾值,該剛體將作為睡眠候選者。
Default Contact Offset????設(shè)置碰撞檢測系統(tǒng)用于產(chǎn)生碰撞接觸的距離。該值必須為正,如果設(shè)置得太接近零,可能導(dǎo)致抖動。默認(rèn)情況下,該值設(shè)置為 0.01。僅當(dāng)碰撞體的距離小于其接觸偏移值的總和時,碰撞體才產(chǎn)生碰撞接觸。
Default Solver Iterations????定義 Unity 在每個物理幀運行的解算器進(jìn)程數(shù)。解算器是小型物理引擎任務(wù),決定了許多物理交互,例如關(guān)節(jié)運動或管理重疊剛體組件之間的接觸。
此設(shè)置會影響解算器輸出的質(zhì)量,如果使用非默認(rèn)的?Time.fixedDeltaTime
,或者配置要求極高,建議更改此屬性。通常,此屬性用于減少關(guān)節(jié)或接觸引起的抖動。
Default Solver Velocity Iterations????設(shè)置解算器在每個物理幀中執(zhí)行的速度進(jìn)程數(shù)。解算器執(zhí)行的進(jìn)程越多,剛體反彈后產(chǎn)生的退回速度的精度就越高。如果遇到連接的剛體組件或布娃娃在碰撞后移動太多的問題,請嘗試增加此值。
Queries Hit Backfaces????如果希望物理查詢(例如?Physics.Raycast
)檢測是否命中 MeshColliders 的背面三角形,請啟用此選項。默認(rèn)情況下會禁用此設(shè)置。
Queries Hit Triggers如果希望物理命中測試(例如射線投射、SphereCasts 和 SphereTests)在與標(biāo)記為觸發(fā)器的碰撞體相交時返回命中,請啟用此選項。單個射線投射可以覆蓋此行為。默認(rèn)情況下會啟用此設(shè)置。
Enable Adaptive Force啟用此選項可啟用自適應(yīng)作用力。自適應(yīng)作用力會影響通過一堆對象傳遞力的方式,可提供更真實的行為。默認(rèn)情況下會禁用此設(shè)置。
Contacts Generation選擇接觸生成方法。
Legacy Contacts Generation????在 Unity 5.5 之前,Unity 使用了基于分離軸定理 (SAT) 的接觸生成方法。PCM 效率更高,但對于較舊的項目,您可能發(fā)現(xiàn)繼續(xù)使用 SAT 會更方便,因為無需略微重新調(diào)整物理設(shè)置。PCM 可以產(chǎn)生稍微不同的反彈,并且在接觸緩沖區(qū)中出現(xiàn)的無用接觸更少(即在?Collision?實例中得到的傳遞給?OnCollisionEnter
、OnCollisionStay
?和?OnCollisionExit
?的數(shù)組)。
升級建議:要遷移使用 Unity 2018.2 或更低版本制作的項目,可能需要更新腳本以便使用代碼在復(fù)合體中合并面片以及選擇接觸。
Persistent Contacts Manifold (PCM)????每個物理幀生成更少的接觸,跨幀共享更多接觸數(shù)據(jù)。PCM 接觸生成路徑也更準(zhǔn)確,并通常在大多數(shù)情況下產(chǎn)生更好的碰撞反饋。如需了解更多信息,請參閱有關(guān) Persistent Contact Manifold 的 Nvidia 文檔。
這是默認(rèn)值。
Auto Simulation啟用此選項可自動運行物理模擬或允許對其進(jìn)行顯式控制。
Auto Sync Transforms啟用此選項可在變換組件發(fā)生更改時自動將變換更改與物理系統(tǒng)同步。默認(rèn)情況下會禁用此設(shè)置。
Contact Pairs Mode選擇要使用的接觸對生成類型。
????Default Contact Pairs接收來自除運動/運動和運動/靜態(tài)接觸對之外的所有接觸對的碰撞和觸發(fā)事件。
????Enable Kinematic Kinematic Pairs接收來自運動/運動接觸對的碰撞和觸發(fā)事件。
????Enable Kinematic Static Pairs接收來自運動/靜態(tài)接觸對的碰撞和觸發(fā)事件。
????Enable All Contact Pairs接收來自所有接觸對的碰撞和觸發(fā)事件。
Broadphase Type????擇要在物理模擬中使用的粗篩階段算法。請參閱有關(guān)?PhysX SDK?和剛體碰撞 (Rigid Body Collision)?的 NVIDIA 文檔。
Sweep and Prune Broadphase????使用“掃掠修剪”粗篩階段碰撞方法(即沿單個軸排序?qū)ο笠员苊獗仨殭z查相距很遠(yuǎn)的對)。
Multibox Pruning Broadphase????多盒修剪使用網(wǎng)格,每個網(wǎng)格單元格執(zhí)行掃掠修剪。這通常有助于提高性能,例如在平坦世界中有大量游戲?qū)ο髸r。
Automatic Box Pruning????該算法與 Multibox Pruning 的算法相似,不同之處在于該算法還可以自動計算世界邊界和細(xì)分?jǐn)?shù)量。該算法將維護(hù)一組網(wǎng)格單元格,并使用常規(guī)的“掃掠修剪”方法來計算可能重疊的碰撞體對。該算法通常適用于大型場景,在這樣的場景中單個“掃掠修剪”會產(chǎn)生很多額外的誤報。
World Bounds????使用?Multibox Pruning Broadphase?算法時,定義包圍世界的 2D 網(wǎng)格以防止相距遙遠(yuǎn)的對象相互影響。僅在?Broadphase Type?設(shè)置為?Multibox Pruning Broadphase?時使用此選項。
World Subdivisions2D 網(wǎng)格算法中沿 x 和 z 軸的單元格數(shù)。僅在?Broadphase Type?設(shè)置為?Multibox Pruning Broadphase?時使用此選項。
Friction Type選擇用于模擬的摩擦力算法。
Patch Friction Type????一種基本的強大摩擦力算法,通常可以在較低的解算器迭代次數(shù)下產(chǎn)生最穩(wěn)定的結(jié)果。此方法為每對觸摸對象僅使用最多四個標(biāo)量解算器約束。
One Directional Friction Type????庫侖摩擦力模型的簡化版,其中將給定接觸點的摩擦力施加在接觸法線的交替切線方向上??蓽p少收斂所需的迭代次數(shù),但不如雙向模型精確。
Two Directional Friction Type與單向模型一樣,但同時在兩個切線方向上施加摩擦力。這需要更多的解算器迭代次數(shù),但更精確。對于具有許多接觸點的情況,比面片摩擦的成本更高,因為這會應(yīng)用于每個接觸點。Enable Enhanced Determinism無論角色是否存在,場景中的模擬都是一致的(前提是游戲以確定的順序插入角色)。此模式犧牲了一些性能來確保這種額外的確定性。
Enable Unified Heightmaps啟用此選項可以像處理網(wǎng)格碰撞一樣處理地形碰撞。
Solver Type選擇要用于模擬的 PhysX 解算器。
????Projected Gauss Seidel默認(rèn) PhysX 解算器。
????Temporal Gauss Seidel該解算器提供更好的收斂性和更好的高質(zhì)量比處理方式,在校正穿透時可以最大限度減小引入的能量,并可提高關(guān)節(jié)抗過度拉伸的能力。使用默認(rèn)解算器在模擬過程中遇到一些不穩(wěn)定的行為時,使用這種解算器通常會有幫助。
Layer Collision Matrix定義基于層的碰撞檢測系統(tǒng)的行為方式。選擇碰撞矩陣中的哪些層與其他層交互(勾選相應(yīng)層即可)。
Cloth Inter-Collision
????Distance????定義每個互碰撞的布料粒子的包裹球體的直徑。Unity 確保這些球體在模擬過程中不會重疊。Distance 屬性的值應(yīng)小于配置中的兩個粒子之間的最小距離。如果距離較大,則布料碰撞可能違反某些距離約束并導(dǎo)致抖動。
????Stiffness互碰撞的布料粒子之間的分離沖力的強度。此值由布料解算器進(jìn)行計算,應(yīng)足以保持粒子分離。