我的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设置。
答案 0 :(得分:3)
方法SceneManager.GetSceneByName()
搜索已加载的场景列表中的场景。
就SceneManager.sceneCount而言,它的统一文档清楚地表明它返回:
当前加载的场景数量
为了找出构建设置中的场景数量,有一个单独的变量SceneManager.sceneCountInBuildSettings
。
如果您使用SceneManager.GetSceneByName()
,则在添加模式下加载场景后,将返回有效场景。