health script only works once?

im having a problem with my health script it works fine but only once when the player gets game over and restarts they only get 1 life instead of three. I just cant figure out why i wont work. Any help would be much appreciated.

heres my script

public class HealthControl : MonoBehaviour

{

public Texture2D Life1; //One Life Left
public Texture2D Life2; //Two Lives
public Texture2D Life3; //Full Health

static int Health = 3;

public void RemoveLife()
{
    --Health;
   if (Health < 1)
    {
      Application.LoadLevel(4);
    }

    switch (Health)
    {
        case 3:
            guiTexture.texture = Life3;
            break;

        case 2:
            guiTexture.texture = Life2;
            break;

        case 1:
            guiTexture.texture = Life1;
            break;

    }
}

}

You should probably add a method and call it when you start the game (also when you restart):

public void Initialize() {
    Health = 3;
}

That should do it ;-)

Depending on how your game is set up, it might be even easier than that ... if the object that your script is attached to is not kept between levels (i.e. it is destroyed / recreated when starting a game session), simply implement Start() with initialization:

public void Start() {
    Health = 3;
}

Static variables always keep their values and need to be specifically initialized. (As an aside, your code would be much shorter, easier to maintain, and more flexible if you use an array for the life textures instead of separate variables like that.)