PhysicMaterial is now PhysicsMaterial in Unity 6

Unity 6 renamed PhysicMaterial to PhysicsMaterial and PhysicMaterialCombine to PhysicsMaterialCombine. The rename for scripts that use physics materials.

Status
Obsolete since Unity 6.0 · Physics
Old
PhysicMaterial, PhysicMaterialCombine
New
PhysicsMaterial, PhysicsMaterialCombine
Checked
2026-10-05, against the sources below

What changed

The 3D physics material class is PhysicsMaterial in Unity 6; earlier versions called it PhysicMaterial. Its combine enum moved with it, from PhysicMaterialCombine to PhysicsMaterialCombine. Friction and bounciness work as before.

This only affects code that names the type, for example a script that creates a material at runtime or a field typed as PhysicMaterial. Material assets already in your project keep working. The 2D equivalent, PhysicsMaterial2D, already had the new spelling and did not change.

Before and after

Before
C#
var slippery = new PhysicMaterial("Ice");
slippery.frictionCombine = PhysicMaterialCombine.Minimum;
After
C#
var slippery = new PhysicsMaterial("Ice");
slippery.frictionCombine = PhysicsMaterialCombine.Minimum;

Fix it automatically

Paste a script into the Unity 6 Script Upgrade Checker and it applies this rename for you, along with the other safe fixes for your target version.

Open this example in the checker

Questions

Do my physics material assets need converting?
No. Existing material assets keep working and stay assigned to their colliders. Only scripts that name the type, such as a field declared as PhysicMaterial, need the new spelling.
How do I keep a script compiling on Unity 2022.3 as well?
Wrap the type name: #if UNITY_6000_0_OR_NEWER use PhysicsMaterial, #else use PhysicMaterial. Or give the field a using alias at the top of the file inside the same check, so the rest of the script uses one name.

Sources

Related Unity 6 changes

Every Unity 6.x change, by version