nmw*_*223 0 c# unity-game-engine scene-manager
在我的应用程序中,我想在特定场景启动时获取某些场景及其构建索引的列表。可能尚未加载任何场景。
为此我尝试过SceneManager.GetSceneByName()- 我有相关场景的名称。什么也没有回来。
查看文档似乎这应该可行。然而,看看类似的内容GetSceneByIndex()确实表明它仅适用于加载的场景,并且我假设 - 认为它没有这么说 - 这同样适用于GetSceneByName().
因此,我还没有找到一种方法来列出所有可用但可能尚未加载的场景。到目前为止,我已经对相关的构建索引进行了硬编码,但我不喜欢这样。
有办法做到这一点吗?
一般来说,您无法获得对Scene尚未加载的任何引用是有道理的。甚至使用SceneManager.GetSceneByBuildIndex状态
如果场景已添加到给定构建索引处的构建设置并且场景已加载,则此方法将返回有效的场景。如果尚未加载,SceneManager 无法返回有效的场景。
然而,您至少 可以SceneUtility.GetScenePathByBuildIndex通过迭代获得所有场景路径/名称SceneManager.sceneCountInBuildSettings
int sceneCount = SceneManager.sceneCountInBuildSettings;
string[] scenes = new string[sceneCount];
for( int i = 0; i < sceneCount; i++ )
{
scenes[i] = SceneUtility.GetScenePathByBuildIndex(i);
}
Run Code Online (Sandbox Code Playgroud)
这些将是完整的场景路径。如果您只想场景名称本身(但可能重复),您可能可以使用
scenes[i] = Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3891 次 |
| 最近记录: |