3

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

SceneManager.GetSceneByName("Scene1");

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

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

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

统一文件GetSceneByName说:

在添加到 SceneManager 的场景中搜索具有给定名称的场景。

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

这是否意味着我应该将所有场景添加到第SceneManager一个?

我怎样才能做到这一点?

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

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

4

1 回答 1

3

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

当前加载的场景数

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

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

于 2016-08-06T08:28:59.190 回答