Unity 在 while 循环期间冻结,并使用计时器或键盘输入来中断它

问题描述 投票:0回答:1

我正在设计一个心理学实验。如果按下按钮,我需要等待 x 秒(WordDuration 变量)或提前结束循环。但团结却冻结了。我该如何解决?保持计时精度至关重要(首选毫秒分辨率),

       double StartTime = Time.realtimeSinceStartup;
        while (true)
        {
            double tt = Time.realtimeSinceStartup - StartTime;
            if (tt > WordDuration) break;
            if (Input.GetKeyDown(KeyCode.Space)) break; 

        }
unity-game-engine while-loop freeze
1个回答
0
投票

While 循环是恒定的,并且在满足条件之前不会停止,这可能会导致 Unity 进程在内存不足时停止。要解决此问题,请将其放在 While 循环的末尾。

产量返回null;

© www.soinside.com 2019 - 2024. All rights reserved.