0

プレイヤーが水にぶつかるたびに命の数を変えたいです。私はこれまでにこのコードを書きました:

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;
}
}
}

問題は、プレイヤーが水にぶつかると、ライフが 3 から -120 に変化することです。これは、プレイヤーが 6 ~ 7 秒間水上にいるために起こると思います。そのため、キャラクターは元の位置 (リスポーン位置) に戻るまで 120 回水にぶつかる可能性があります。

誰でもそれを手伝ってもらえますか?

4

1 に答える 1