Unity C#funtion应用程序.canstreamdlevelbeloaded(String)做什么?

Unity C#funtion应用程序.canstreamdlevelbeloaded(String)做什么?,c#,unity3d,C#,Unity3d,在ARFoundation Unity示例中,我发现了以下代码片段: public void BackButtonPressed() { if (Application.CanStreamedLevelBeLoaded("Menu")) { SceneManager.LoadScene("Menu", LoadSceneMode.Single);

在ARFoundation Unity示例中,我发现了以下代码片段:

public void BackButtonPressed()
        {
            if (Application.CanStreamedLevelBeLoaded("Menu"))
            {
                SceneManager.LoadScene("Menu", LoadSceneMode.Single);
                LoaderUtility.Deinitialize();
            }
        }
有人能给我解释一下什么时候和为什么要使用Application.CanStreamedLevelBeLoaded(String)吗?在Unity文档中,我发现这是一个解释:可以加载流式液位吗

但这并不能告诉我什么

何时以及为什么还要使用
LoadSceneMode.Single
LoaderUtility.Deinitialize()
? 我为
LoaderUtility.Deinitialize()
找到了这一点:如果存在当前活动的XR加载程序,则对其进行反初始化。这将破坏所有子系统


谢谢你的帮助。谢谢

应用程序。CanStreamedLevelBeLoaded
执行您认为在读取函数名时应该执行的操作,它检查流化级别是否可以加载。在尝试实际加载流式液位之前使用它。在这种情况下,流式传输意味着下载WebGL客户端的级别。 流的进度意味着你的级别下载进度

使用此函数检查下载状态,就像您在文档示例中看到的那样,以防止在尝试加载未完成的级别时出现异常

在幕后,它使用
UnityWebRequest
的名为
downloadProgress
的浮点来确定文件是否已下载


在更深的层次上,您很可能会发现一个文件流,因此函数的名称。

好的,但这里的级别是什么意思?这只对WebGL客户端重要,而对其他平台不重要,为什么还要下载任何东西,因为我只是尝试加载/更改场景,而加载的场景总是在项目中。如果我的问题听起来很愚蠢,我真的很抱歉。我对Unity/ARFoundation比较陌生。谢谢你的评论!我真的很感激!