Subtract one from health every five seconds.

I have a script that invokes a function every five seconds where if the player is hungry, one point is subtracted from the player’s health until it reaches zero, at which point, the player dies. However, I’ve been having a problem and can’t seem to figure it out. Once the function is invoked, it doesn’t happen every five seconds, instead it drains the player health to zero in about 1.5 seconds. I’ll post the code below. Any help would be greatly appreciated.

using UnityEngine;
using System.Collections;

public class playerHunger : MonoBehaviour {

public int Hunger = 3;
public GUISkin customSkin;
public Texture HungerFull;
public Texture HungerHalf;
public Texture HungerOne;
public Game2_Player Deadbool;
public int HealthDeduction = 1;
	
	// Use this for initialization
	void Start () {
		InvokeRepeating("HungerDecay", 480, 480.0f);
	}
	
	// Update is called once per frame
	void Update () {
		if(Hunger<=0){
			Hunger=0;
		}
		if(Hunger==0){
			Invoke("HungerDamage", 1);
		}
		if(Game2_Player.hp==0){
			Game2_Player.dead = (true);
			Time.timeScale = 0.0f;
		}
	}


	void HungerDecay () {
		Hunger--;
}
	void OnGUI(){
		GUI.skin=customSkin;
		GUI.Label(new Rect(10,70,100,100), "Hunger:");
		if(Hunger==3){
			GUI.DrawTexture(new Rect(10,70,100,100), HungerFull, ScaleMode.ScaleToFit, true, 0);
			}
		if(Hunger==2){
			GUI.DrawTexture(new Rect(10,70,100,100), HungerHalf, ScaleMode.ScaleToFit, true, 0);
			}
		if(Hunger==1){
			GUI.DrawTexture(new Rect(10,70,100,100), HungerOne, ScaleMode.ScaleToFit, true, 0);
			}
		if(Hunger==0){
			GUI.Label(new Rect(10,70,100,100), "Feed Me!");
		}
	}
	void HungerDamage(){
		if(Hunger==0){
		Game2_Player.hp--;
		}
	}
}

Try this:

void Start()
{
       InvokeRepeating("DamagePlayer", 0, 5);
}
    	
void DamagePlayer()
{
       //TODO Dmg the player
}