title: UNITY Lose one life when player hits the water
body: <p>I want to change the number of lives every time the player hits the water. I wrote this code so far:</p>
  
  <pre><code>public var dieSound:AudioClip;
  static var lives = 3;
  
  function Start () {
  
  }
  
  function Update () {
  if(lives == 0)
  {
  Application.LoadLevel("menu");
  }
  }
  
  public function OnGUI()
  {
  GUI.backgroundColor = Color.blue;
  GUI.Button (Rect (10, 10, 100, 30), "Lives: " + lives);
  }
  
  function OnControllerColliderHit (hit : ControllerColliderHit)
  {
  if (hit.collider.tag == "Water")
  {
  // play dying sound
  audio.PlayOneShot(dieSound);
  
  // show mission fail UI
  GameObject.Find("MissionTXT").guiText.enabled = true;
  // wait until it's ended
  yield WaitForSeconds(dieSound.length + 0.01);
  transform.position = GameObject.FindWithTag("Respawn").transform.position;
  
  if (transform.position == GameObject.FindWithTag("Respawn").transform.position)
  {
  GameObject.Find("MissionTXT").guiText.enabled = false;
  lives = lives - 1;
  }
  }
  }
  </code></pre>
  
  <p>The problem is that when the player hits the water, lives change from 3 to -120. I think that happens because the player is on the water for like 6-7 seconds. So character may hits the water 120 times until he goes back to the original position (Respawn position).</p>
  
  <p>Can anyone help me with that please?</p>