if-else语句用于更改级别

时间:2017-12-03 11:27:46

标签: c# if-statement unity3d

我有一个改变游戏关卡的功能。在游戏中,第一级正确地更改为第二级。但是第二级也改为第一级,然后计数= 4.我该如何解决这个问题呢?这是我的代码:

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

1 个答案:

答案 0 :(得分:2)

我不知道你的代码步骤,但也许就是这种情况,我想。 如果场景重新加载,则前一场景中的游戏对象将被销毁。 因此levelOneCompleted始终为false。 这就是SceneManager.LoadScene("FifthGameThirdLevel");无法运行的原因。

如果它是正确的,我建议levelOneCompleted公开并在第二级游戏对象中设置true