private void CheckGroundCollision()
    {
        //Get the 10 first contacts of the box collider
        ContactPoint2D[] contacts = new ContactPoint2D[10];
        int count = boxColl.GetContacts(contacts);

        //If we find any horizontal surfaces, we are on the ground
        onGround = false;
        for (int i = 0; i < count; i++)
        {
            //If the angle between the normal and up is less than 5, we are on the ground
            if (Vector2.Angle(contacts[i].normal, Vector2.up) < 5.0f)
            {
                onGround    = true;
                rb.velocity = new Vector2(rb.velocity.x, 0);
            }
        }

        //Is only true the first frame that we are one the ground
        if (onGround)
        {
            if (!gfm.disableSoundEffects)
            {
                //SFX
                audioManager.PlayWithRandomPitch("Landing");
            }

            if (!gfm.disableParticles)
            {
                //VFX
                GameObject particles = Instantiate(ps, transform.position - new Vector3(0, 0.5f, 0), Quaternion.identity);
                particles.GetComponent <ParticleSystem>().Play();
            }

            if (gfm.disableAnimations)
            {
                //Landing animation
                scale.LandingAnimation();
            }
        }
    }