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

时间:2015-07-06 17:16:52

标签: c# unity3d

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

string levelName = Application.GetLevelNameByIndex(2);

但是有没有办法用它的名字来识别场景的关卡索引?

2 个答案:

答案 0 :(得分:0)

现在看来支持不是很好,请参阅this answer

  

仅限于编辑 - 根据这个问题。

     

在这里投票,这是一个奇怪的缺席特征。

     

请注意,如果您想向用户显示文字,您可能还需要长名称,说明和屏幕截图。

编辑:Found an answer that has an editor script that may be of assistance.

答案 1 :(得分:0)

这是一种可以使用的方法,假设您知道游戏中有多少场景。

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,那么你传入的字符串不是场景的名称。