Foot Steps on Physics materials not working properly in List

Hi Im a bit new to List’s and I was trying to store my physicsmaterials in a List for my footstep sounds. When I walk on the physics material it does trigger but only ever triggers the first material in the List and wont trigger the other ones.

    public List<PhysicMaterial> footStepPhysicsMaterials = new List<PhysicMaterial>();

    void OnCollisionEnter(Collision hit)
    {
        //groundType = 0;

        //Debug.Log("Sim is walking in no defined mateial");

        if (hit.collider.sharedMaterial == footStepPhysicsMaterials[0])
        {
            groundType = 1;
            //Debug.Log("Sim is walking in gravel physics material");
        }

        if (hit.collider.sharedMaterial == footStepPhysicsMaterials[1])
        {
            groundType = 2;
            //Debug.Log("Sim is walking on physics metal");
        }
        if (hit.collider.sharedMaterial == footStepPhysicsMaterials[2])
        {
            groundType = 3;
            //Debug.Log("Sim is walking on physics Concrete");
        }
        if (hit.collider.sharedMaterial == footStepPhysicsMaterials[3])
        {
            groundType = 4;
            //Debug.Log("Sim is walking on physics grass");
        }

    }

When in doubt, Debug !

Debug.Log( gameObject.name + " has collided with " hit.collider.gameObject.name );
Debug.Log( hit.collider.gameObject.name + " has physics material " hit.collider.sharedMaterial.name );

Also consider using a loop :

groundType = -1;

for ( int i = 0; i < footStepPhysicsMaterials.Length; i++ )
   if ( hit.collider.sharedMaterial == footStepPhysicsMaterials[i] )
     groundType = i;

if ( groundType == -1 ) Debug.LogWarning( "no match found for " hit.collider.sharedMaterial.name );
else Debug.Log( "Sim is walking on physics " + footStepPhysicsMaterials[groundType].name );