0
我遇到了我的代碼問題。 只有第一個if語句被調用。 我知道我的水平正在提高,但是在第一條語句被調用並且水平增加後,即使分數低於要求,仍然顯示繼續按鈕。Unity3D如果聲明被調用,只有一個
private void PlayBuzzer()
{
GetComponent<AudioSource>().PlayOneShot(buzzer);
timeRemaining -= 1;
endPanel.SetActive(true);
if (PlayerScore.score >= 15 && level == 1) // THIS ONE WORKS
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
// EVERYTHING BELOW HERE DOES NOT - Score Below 35 still shows 'Continue'
else if (PlayerScore.score >= 35 && level == 2)
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
else if (PlayerScore.score >= 45 && level == 3)
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
else if (PlayerScore.score >= 70 && level == 4)
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
else if (PlayerScore.score >= 120 && level == 5)
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
else if (PlayerScore.score >= 160 && level == 6)
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
else if (PlayerScore.score >= 230 && level == 7)
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
else if (PlayerScore.score >= 300 && level == 8)
{
GameObject.Find("Restart").SetActive(false);
GameObject.Find("Continue").SetActive(true);
}
else
{
GameObject.Find("Restart").SetActive(true);
GameObject.Find("Continue").SetActive(false);
}
Time.timeScale = 0;
}
兩件事: 1.如果分數是40並且等級大於1,那麼是第一個? 2.另外,當我進入第一個案例時,我是否設置了一個斷點,以及'level'變量的實際值? –
請在發佈之前調試您自己的代碼。所有'if' /'else'語句都做同樣的事情,所以你不會真正知道哪一個工作或不工作。在每個if語句中放入'Debug.Log',然後告訴我們發生了什麼。 – Programmer