Unity3d 场景管理器不';我不知道这个场景的名字

Unity3d 场景管理器不';我不知道这个场景的名字,unity3d,scene,scene-manager,Unity3d,Scene,Scene Manager,在我的Unity项目中,我有3个场景,试图通过名称获取场景索引。我正在尝试使用,但我不知道如何使用。使用 当我可以使用加载场景时,返回null SceneManager.LoadScene("Scene1",LoadSceneMode.Single); 当我有3个场景时,还返回1 GetSceneByName的统一文档说: 在添加到SceneManager的场景中搜索具有 名字 名称必须不带.unity扩展名。名称可以是 中的BuildSettings窗口中显示的名称的最后一部分 在这种情况下

在我的Unity项目中,我有3个场景,试图通过名称获取场景索引。我正在尝试使用,但我不知道如何使用。使用

当我可以使用加载场景时,返回
null

SceneManager.LoadScene("Scene1",LoadSceneMode.Single);
当我有3个场景时,还返回
1

GetSceneByName
的统一文档说:

在添加到SceneManager的场景中搜索具有 名字

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

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

我该怎么做

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


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

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

当前加载的场景数

要查找生成设置中的场景数,有一个单独的变量
SceneManager.sceneCountInBuildSettings


如果使用
SceneManager.GetSceneByName()
,在以加法模式加载场景后,将返回一个有效的场景。

如果已加载的场景指的是已播放的场景,那么我已经尝试过了。加载其他场景并返回到第一个场景后,仍然无法按名称找到它们。除非它会在场景改变后立即删除其他场景。不,我不是那个意思。加载场景(在单一模式下)时,将关闭所有当前加载的场景并加载新场景。这就是为什么我提到在加法模式下加载场景。当我使用加法模式时,它会将加载的场景对象与当前场景合并,我做错了吗<代码>SceneManager.LoadScene(“Scene1”,LoadSceneMode.Additional)@AlexJolig,你很少,很少,很少使用“加法模式”,特别是如果你是初学者的话。几乎可以肯定的是,你不想这样。只需使用普通场景加载。@AlexJolig,是的,当使用加法模式时,它会将给定场景与当前场景合并。正如@Joe Blow提到的,您很可能只想在单一模式下加载场景。但是,为了使用
GetSceneByName
您正在搜索的场景,应该加载该场景。
SceneManager.LoadScene("Scene1",LoadSceneMode.Single);