In real-world physics, friction is a force that impedes motion between two surfaces that are in contact with each other. For example, ice has a low-friction surface, which allows objects to slide easily across its surface. Rubber has a high-friction surface, which prevents objects from sliding across its surface.
In the PhysX system, there are two types of friction that you can control:
Static friction applies when the colliderAn invisible shape that is used to handle physical collisions for an object. A collider doesn’t need to be exactly the same shape as the object’s mesh - a rough approximation is often more efficient and indistinguishable in gameplay. More info
See in Glossary is stationary. A high amount of static friction impedes the collider from starting to move while it is in contact with another collider.
Dynamic frictionA Physics Material property that defines the friction for a Rigidbody when it’s in motion. Lower values mean less friction, so a setting of zero represents slipping on ice. More info
See in Glossary applies when the collider is moving. A high amount of dynamic friction impedes the collider’s movement speed while it is in contact with another collider.
Static friction is particularly relevant in physics simulation when you need to stack objects. For example, if you put one low-friction object on top of another (such as a cube of ice on top of another cube of ice), the low friction between them might cause the top object to move, even if the bottom object is stationary.
PhysX calculates contact surfaces which are larger than a single point (such as two boxes resting on each other) as having multiple contact points. This in turn multiples the friction forces. If this happens, you need to adjust your friction values to correctly scale the results - for example, if there are two contact points, you should halve your friction values.
The default friction in Unity is 0.6. This value simulates real-world friction in most projects.
You can choose the type of calculation that PhysX uses to simulate friction between colliders. To do this, go to the Physics Settings (Edit > Project Settings > Physics) and use the Friction Type property. See the Physics Settings documentation for more information on each friction type.
The choice of friction type is always to balance accuracy and performance; more accuracy always requires more processing time. Some projects require extremely accurate friction, while others are more focused on performance optimization. Choose the friction type that best suits your project’s focus. The default friction type is Patch Friction.