C# 用于更改级别的If-else语句
我有一个在我的游戏中改变关卡的功能。在游戏中,第一级正确地转换为第二级。但是第二级也会变为第一级,然后计数=4。我怎样才能解决这个问题?这是我的密码:C# 用于更改级别的If-else语句,c#,if-statement,unity3d,C#,If Statement,Unity3d,我有一个在我的游戏中改变关卡的功能。在游戏中,第一级正确地转换为第二级。但是第二级也会变为第一级,然后计数=4。我怎样才能解决这个问题?这是我的密码: public void CheckLevelCompletion() { if ((count == 4) && (levelOneCompleted == false)) { img.sprite = levelCompletedImage; count = 0; leve
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");
}
}
我不知道你的代码步骤,但我想可能就是这种情况。 若场景重新加载,则上一场景中的游戏对象将被销毁。 所以
levelOneCompleted
总是false
。
这就是为什么SceneManager.LoadScene(“FifthGameThirdLevel”)代码>不运行
如果正确,我建议在二级游戏对象中公开并设置true
。我不知道你的代码步骤,但我想可能就是这种情况。
若场景重新加载,则上一场景中的游戏对象将被销毁。
所以levelOneCompleted
总是false
。
这就是为什么SceneManager.LoadScene(“FifthGameThirdLevel”)代码>不运行
如果正确,我建议在二级游戏对象中公开并设置true
。当你一步一步地浏览代码时会发生什么?你需要发布更多的代码部分,比如count
填充的位置,变量的作用域是什么?当你单步执行代码时会发生什么?你需要发布更多的代码部分,比如where iscount
填充,变量的作用域是什么?是的,我还认为变量levelOneCompleted不会改变它的值,但我不知道为什么。在程序开始时,它的值为false。但是在分支中,if((count==4)和&(levelOneCompleted==false))的值应该更改为true,但什么也不会发生。我该怎么办呢?或者你可以把它变成一个静态的
变量,这样它就可以保持它的值。不要因为这个原因把事情变成静态的,那太糟糕了,而不是静态的目的static
用于未链接到类的特定实例的属性,Math.Pi
例如:调用new Math()
是没有意义的,因此它的所有字段和方法都是静态的。是的,我还认为变量levelOneCompleted不会更改其值,但我不知道为什么。在程序开始时,它的值为false。但是在分支中,if((count==4)和&(levelOneCompleted==false))的值应该更改为true,但什么也不会发生。我该怎么办呢?或者你可以把它变成一个静态的
变量,这样它就可以保持它的值。不要因为这个原因把事情变成静态的,那太糟糕了,而不是静态的目的static
用于未链接到类的特定实例的属性,Math.Pi
例如:调用new Math()
没有意义,因此它的所有字段和方法都是静态的。