Hunger Script Help

I have some trouble here on my hunger script.
So here is the script:

public int playerMaxHunger;
public int playerCurrentHunger;
public int damageToGive;


// Use this for initialization
void Start () {
	playerCurrentHunger = playerMaxHunger;
	
}

// Update is called once per frame
void Update () {
	if(playerCurrentHunger < 1)
	{
		GetComponent<PlayerHealth>().HurtPlayer(damageToGive);
	}
	
}



public void SetMaxHunger()
{
	playerCurrentHunger = playerMaxHunger;
}

And here comes the problem, when the hunger reaches 0 the player health goes constantly down without stopping. I want that he goes down every 3 seconds. And that the hunger decreases every 10 seconds.

Any help please? I tried with InvokeRepeating, but nothing.

Ok first of all I will optimize your code… and use coroutines. Read about it by googling.
But the below code should do what you want:

public int playerMaxHunger;
public int playerCurrentHunger;
public int damageToGive;

//cache the player health component
PlayerHealth playerHealth;

// Use this for initialization
void Start () {
	playerCurrentHunger = playerMaxHunger;
	playerHealth = GetComponent<PlayerHealth>();
	StartCoroutine(CheckHunger());
	StartCoroutine(DecreaseHunger());
}


IEnumerator CheckHunger()
{
	// consider storing a variable to check if player is alive and do While(alive)
	while(true) 
	{
		if(currentHunger < 1)
		{
			playerHealth.HurtPlayer(damageToGive);
			//store 3 in some variable and use it
			yield return new WaitForSeconds(3); 
		}
		else
		{
			// check every frame - or once in few seconds
			yield return null; 
		}
	}
}

IEnumerator DecreaseHunger()
{
	while(playerCurrentHunger > 0)
	{
		yield return new WaitForSeconds(10);
		//decrease currentHunger here
	}
}

You would have to start the “DecreaseHunger” coroutine again once the player hunger goes below 1(where the coroutine exits) and his hunger value increases