2017-12-03 17 views
0

私はゲームのレベルを変更する機能を持っています。ゲームでは、第1レベルは第2レベルに正しく変化する。しかし、第2レベルも第1レベルに変化し、カウント= 4になります。これをどのように修正できますか?ここに私のコードです:レベルを変更するためのIf-elseステートメント

public void CheckLevelCompletion() { 
    if ((count == 4) && (levelOneCompleted == false)) { 
     img.sprite = levelCompletedImage; 
     count = 0; 
     levelOneCompleted = true; 
     SceneManager.LoadScene("FifthGameSecondLevel"); 
    } 
    else if ((count == 6) && (levelOneCompleted == true)) 
    { 
     img.sprite = levelCompletedImage; 
     count = 0; 
     levelTwoCompleted = true; 
     SceneManager.LoadScene("FifthGameThirdLevel"); 
    } 
} 
+0

コードをステップ実行するとどうなりますか? – mjwills

+2

あなたは 'count'がどこに置かれているかのように、より多くのコード部分を投稿する必要があります。 –

答えて

2

私はあなたのコードのステップを知っていませんが、多分それはこのような状況です。 シーンがリロードされた場合、前のシーンのゲームオブジェクトは破棄されます。 だからlevelOneCompletedは常にfalseです。 SceneManager.LoadScene("FifthGameThirdLevel");が実行されないのはこのためです。

正しい場合は、levelOneCompleted publicを公開し、第2レベルのゲームオブジェクトにtrueを設定することをおすすめします。

+0

はい、私はまた、変数levelOneCompletedはその値を変更しないと思ったが、私は理由を知らない。プログラムの開始時には値はfalseです。しかし、ブランチif((count == 4)&&(levelOneCompleted == false))の値はtrueに変更する必要がありますが、何も起こりません。私は何をすべきか? – Dagget

+0

ありがとうございました!できます。あなたは私の一日を作った – Dagget

+0

それはその値を維持することができるように静的な変数にすることができます – PassetCronUs

関連する問題