2016-07-16 11 views
1

ゲーム中にキャラクターが死亡した後、レベルの読み込みを遅らせる可能性があるかどうか質問したいと思います。私は次のコードを使用しています:Application.LoadLevel()Unityで遅れている

void Update() { 
    if (health.currentVal <= 0) 
     Die(); 
    } 
    void Die(){ 
     Application.LoadLevel (Application.loadedLevel); 
    } 

これは基本的に私のシーンを再現しますが、私は可能な限り音と遅延を追加したいと思います。

ありがとうございました。

答えて

1

呼び出しを使用して5秒間待つことができます。

Invoke("Die",5); 

またStartCoroutine(waitRestart());でそれを呼び出してコルーチン

IEnumerator waitRestart() 
{ 
    yield return new WaitForSeconds(5); //Wait for 5 secs 
    Die(); 
} 

を使用することができます。

+0

偉大な、うまく動作します。ゲームを再開するまで待っている間に「プレーヤー」オブジェクトの動きをフリーズまたはディスエーブルにすることも可能ですか? 新しい問題は、彼が「死んでいる」間に私はまだプレイヤーを移動できることです。 –

+0

@TomášTomHaverlaはい。ブール値を作成し、それを使ってプレイヤーがいつ死んだのかを判断します。たとえば、 'bool isDead;'とすると、移動コードでは、プレーヤーを移動する前にプレーヤーが死んでいないことを確認してください。あなたは 'if(!isDead){//ここにあなたの移動コードを入れてください};でチェックすることができます。 "!"死んでいないことを意味する。また、 'Invoke(" Die "、5);'を呼び出す前に、isDead = true;を実行して死んだときに 'isDead'を' true'にします。まだこれについて質問がある場合、これはまったく別の問題であるため、新しい質問を作成してください。あなたはそれが働いてからこの答えを受け入れることを忘れないでください。 – Programmer

0

Invoke()でお電話ください。 2番目のパラメータは秒単位の時間遅延です。

void Update() 
    { 
    if (health.currentVal <= 0) 
    { 
     Invoke("Die", 3f); 
    }  
    } 
関連する問題