如何获取和比较当前场景名称
本文关键字:比较 何获取 获取 | 更新日期: 2023-09-27 18:18:18
我试图比较场景名称,但我得到下面的错误:
错误CS0019:操作符
==' cannot be applied to operands of type
方法组'和'字符串'
我不知道如何修复这个错误。请帮帮我!错误位于箭头
void CheckCurrentLevel()
{
for(int i = 1; i < LevelAmount; i++)
{
---> if (SceneManager.LoadScene == "Level" + i) {
CurrentLevel = i;
SaveMyGame ();
}
}
}
SceneManager.LoadScene
是void
函数,用于加载场景。它不返回任何东西,所以你不能将它与字符串进行比较。
看起来你想比较当前场景name
和"Level" + i
。如果这是真的,那么你要找的是SceneManager.GetActiveScene().name
void CheckCurrentLevel()
{
for (int i = 1; i < LevelAmount; i++)
{
if (SceneManager.GetActiveScene().name == "Level" + i)
{
CurrentLevel = i;
SaveMyGame();
}
}
}
请记住,==
运算符检查两个操作数的值是否相等,前提是两个操作数必须是相同的类型。从错误消息中可以清楚地看出,LoadScene
被定义为一个方法。
如果你像这样使用,你的代码会工作得很好:
if (SceneManager.LoadScene(params if any) == "Level" + i)
{
// Code here
}
根据LoadScene()方法应该返回一个字符串对象的条件,否则返回类型将是一个业务对象,在这种情况下使用字符串属性进行比较