Unity:如何暂停执行直到函数终止,以便不跳过任何帧



我正在编写一个游戏/程序,每隔几秒钟就必须将大量数据写入硬盘 - 这需要几秒钟才能完成,并且自然会导致游戏在该持续时间内挂起。

但是,当游戏在写入完成后恢复时,游戏会跳过几帧。

我需要它,Unity 绝对不会跳过任何帧。如何强制 Unity 引擎停止执行,直到写入完全完成,以便在它恢复时不会跳过任何帧?


为了提供一些上下文,我每帧捕获一个屏幕截图,将它们作为 Texture2D 存储在队列中。当队列中有超过 100 帧的 Texture2D 时,我会以 PNG 的形式将其写入磁盘,并清除队列。

我想在写入时暂停渲染/执行,以便输出(单独)无缝。

您可以将 timeScale 设置为 0,以便不调用动画和 FixedUpdate。

至于更新,您必须添加一些检查:

void Update()
{
    if(Manager.cleaningTexture == true){ return; }
    // Rest of the code
}

最新更新