unity3d Unity不断从协同程序崩溃

jjhzyzn0  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(207)

我试图启动一个内部有while(true)循环的协程。我在循环中有一个yield return null;,但是编辑器还是崩溃了。
代码:
第一个
(it在音乐开始播放之前不会崩溃)
据我所知,这不会使unity崩溃。为了使事情更加混乱,我有另一个IEnumerator,它里面有一个while(true)循环,它不会使编辑器崩溃。
另一个IEnumerator:

private IEnumerator MusicProgressTextSetter()
    {
        VisualElement root = GetComponent<UIDocument>().rootVisualElement;
        while (true)
        {
            root.Q<Label>("Song-progress-label").text = $"{music.clip.length} / {music.time}";
            root.Q<Slider>("Music-time-slider").SetValueWithoutNotify(music.time);
            yield return null;
        }
    }

这首歌也是从

emeijp43

emeijp431#

最有可能的编辑器崩溃,因为它可以检测到无限循环,这将发生与:

while (true)
{                
    yield return null;
}

它不会崩溃,直到音乐开始播放,这意味着它将永远等待音乐停止,它可能永远不会发生,直到游戏停止运行?
如果您不需要GridMover() IEnumerator中的While循环,可以将其删除,这样不会使编辑器崩溃。

相关问题