SceneManager不会按名称

时间:2016-08-06 07:21:51

标签: unity3d scene scene-manager

我的Unity项目中有3个场景,并尝试按名称获取场景索引。我正在尝试使用SceneManager,但我无法弄清楚如何使用SceneManager.GetSceneByName。使用

SceneManager.GetSceneByName("Scene1");
当我可以使用

加载场景时,

返回null

SceneManager.LoadScene("Scene1",LoadSceneMode.Single);

当我有3个场景时,SceneManager.sceneCount也会返回1

GetSceneByName的Unity文档说:

  

通过场景搜索添加到SceneManager的场景   给定的名字。

     

名称必须没有.unity扩展名。这个名字可以是   在BuildSettings窗口中显示的名称的最后一部分   在哪种情况下,将返回匹配的第一个场景。名字   也可以是构建设置中显示的路径   没有扩展名,在这种情况下只有完全匹配   回。这是不区分大小写的。

这是否意味着我应该首先将所有场景添加到SceneManager

我该怎么做?

如果是,那么为什么SceneManager.LoadScene()使用场景名称而不将其添加到SceneManager

注意:我已经将所有3个场景添加到了Build设置。

1 个答案:

答案 0 :(得分:3)

方法SceneManager.GetSceneByName()搜索已加载的场景列表中的场景。 就SceneManager.sceneCount而言,它的统一文档清楚地表明它返回:

  

当前加载的场景数量

为了找出构建设置中的场景数量,有一个单独的变量SceneManager.sceneCountInBuildSettings

如果您使用SceneManager.GetSceneByName(),则在添加模式下加载场景后,将返回有效场景。