在Unity中使用场景名称获取关卡索引

本文关键字:获取 索引 Unity | 更新日期: 2023-09-27 18:01:19

我知道有一种方法可以通过索引获得关卡名称:

string levelName = Application.GetLevelNameByIndex(2);

但是是否有一种方法可以通过名称来识别场景的关卡索引?

在Unity中使用场景名称获取关卡索引

看起来现在还不太支持,请看下面的答案。

仅在编辑器中使用-根据此问题

在这里投票,这是一个奇怪的缺席功能。

请注意,如果你想向用户显示文本,你可能想要一个很长的名称,一个描述,以及一个截图。

编辑:找到一个答案,有一个编辑脚本,可能是有帮助的。

假设你知道游戏中有多少场景,你可以使用这个方法。

using UnityEngine;
using System.Collections;
public class SceneDetector : MonoBehaviour {
    public int numberOfScenes = 5;
    public String[] sceneNames;
    void Start() {
        sceneNames = new String[numberOfScenes];
        for(int i = 0; i < numberOfScenes; i++)
        {
            sceneNames[i] = Application.GetLevelNameByIndex(i);
        }
    }
    public int GetSceneIndex(String sceneName)
    {
        for(int i = 0; i < sceneNames.length; i++)
        {
            if(sceneName == sceneNames[i])
            {
                return i;
            }
        }
        return -1;
    }
}

当然,你可以看到如果你运行GetSceneIndex,它返回-1,那么你传入的字符串不是一个场景的名称