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
var slippery = new PhysicMaterial("Ice");
slippery.frictionCombine = PhysicMaterialCombine.Minimum;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 checkerQuestions
- 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_NEWERusePhysicsMaterial,#elseusePhysicMaterial. 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.