我正在使用SceneManager.LoadSceneAsync(scene_name)
来加载场景;我有一个带有一些文字的黑色图像,告诉用户我正在加载一个新场景。文字是动画的。
" loading"屏幕也有一个声音循环,所以我可以判断音乐何时停止新场景已经准备就绪并且旧场景已被处理掉。
问题是,在音乐停止播放的那一刻和另一个场景出现之间,存在延迟;如果我在编辑器中已经运行了应用程序(或者是独立的,行为是相同的),那几秒钟,如果应用程序还没有运行,它会上升到10-15秒。
有没有办法弄清楚挂起的位置?使用VS和断点,当我一步一步地进行时,编辑无法准确地反映出发生了什么。
我甚至创建了一个AsynOperation,我为AsyncOperation.progress
得到0(当场景完全加载时应为1),同样适用于AsyncOperation.isDone
,返回false
答案 0 :(得分:1)
我相信我确实找到了这个问题。
当Unity加载一个新场景时,它必须初始化每个游戏对象的所有元素;这意味着如果你在新场景中运行协同程序;它们可能被触发并循环。
我无法解释为什么我根本没有进展,也没有为什么isDone仍然是假的,即使在加载了关卡之后也是如此。