Why isn't my code subtracting from hp on collision?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HpScript : MonoBehaviour
{
    public int hp = 100;

    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.layer == 8)
            hp -= 100;
    }
}

Updated and still no luck.

public class HpScript : MonoBehaviour

{
    public int hp = 100;
    int damage=100;



    void OnCollisionEnter(Collision _collision)
    { 
        if(_collision.gameObject.tag=="Hazard")
        {
            hp -= damage;
        }
    }
}