SurfaceBulletPhysicsInfo ScriptableObject
Overview
The SurfaceBulletPhysicsInfo scriptable object specifies how bullets react to different surface types using a SurfaceBulletPhysicsAmmoEffect. Individual surfaces can have different settings for ricochet and penetration.
Inspector

Properties
| Name | Type | Description |
|---|---|---|
| Penetration Speed | Float | The speed at which the penetration values below are accurate. As speed drops away, projectiles cannot penetrate as far. |
Per-Surface Properties
| Name | Type | Description |
|---|---|---|
| Can Penetrate | Boolean | Can the projectile penetrate this surface type. |
| Penetration Depth | Float | The maximum depth the projectile can penetrate this surface when travelling at the Penetration Speed specified above. |
| Max Penetration Angle | Float | The maximum angle of incidence with the surface where a projectile can penetrate. |
| Max Deflection | Float | A 0-1 value representing how much the projectile direction can be altered by moving through the surface. |
| Can Ricochet | Boolean | Can the projectile ricochet off this surface. |
| Min Ricochet Speed | Float | The speed below which a projectile cannot ricochet. |
| Min Ricochet Angle | Float | The minimum angle of incidence that a projectile will ricochet. Below this and the projectile will penetrate or be destroyed. |
| Strong Ricochet Angle | Float | The angle of incidence where the projectile is deflected with the least speed loss. |
| Min Speed Multiplier | Float | The multiplier applied to the projectile speed when it hits at the minimum angle (as close to straight on as it can ricochet). |
| Max Speed Multiplier | Float | The multiplier applied to the projectile speed when it hits at the maximum glancing angle. |
| Surface Friction | Float | Surface friction is used to add randomness to the ricocheted projectile's direction. Lower friction means a more predictable ricochet. |