我正在设计一个心理学实验。如果按下按钮,我需要等待 x 秒(WordDuration 变量)或提前结束循环。但团结却冻结了。我该如何解决?保持计时精度至关重要(首选毫秒分辨率),
double StartTime = Time.realtimeSinceStartup;
while (true)
{
double tt = Time.realtimeSinceStartup - StartTime;
if (tt > WordDuration) break;
if (Input.GetKeyDown(KeyCode.Space)) break;
}
While 循环是恒定的,并且在满足条件之前不会停止,这可能会导致 Unity 进程在内存不足时停止。要解决此问题,请将其放在 While 循环的末尾。
产量返回null;