如何获取和比较当前场景名称

本文关键字:比较 何获取 获取 | 更新日期: 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.LoadScenevoid函数,用于加载场景。它不返回任何东西,所以你不能将它与字符串进行比较。

看起来你想比较当前场景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()方法应该返回一个字符串对象的条件,否则返回类型将是一个业务对象,在这种情况下使用字符串属性进行比较