每次调用LevelChange函数时,我都尝试将1添加到变量levelname。但是,每次调用它时,它都会将值重置为1,就像它最初在代码开头设置的那样。我习惯了c ++并且非常困惑。这段代码有点草率,因为香港专业教育学院尝试了很多方法来解决这个问题。任何帮助,将不胜感激。 有一个支架丢失,因为由于某种原因我不能让这一行进入代码块。
public class NextLevel : MonoBehaviour {
int levelname = 1;
int newlevelname;
string levelnameS;
void LevelChange()
{
levelname++;
newlevelname = levelname;
string levelnameS = newlevelname.ToString(); //Converts newlevelname which is an int value to a string
Debug.Log(levelnameS); //prints to the console
SceneManager.LoadScene(levelnameS); //changes scene based on the level name. In this case its a number because thats what the levels are named.
Debug.Log(levelname);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Return))
{
LevelChange(); //calls the level change function
}
}
}
答案 0 :(得分:4)
int levelname=1
是一个实例属性。类levelname
的每个实例都有自己的值。因此,如果您每次创建NextLevel
的新实例并且调用NextLevel
计数始终从1开始。
您可以将Update
切换为静态属性,也可以始终使用类levelname
的一个实例。
答案 1 :(得分:2)
使用App\Console\Kernel
而不是public static int levelname = 1;