1

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

但是,当写入完成后游戏继续时,游戏会跳过几帧。

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


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

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

4

1 回答 1

0

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

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

void Update()
{
    if(Manager.cleaningTexture == true){ return; }
    // Rest of the code
}
于 2016-02-25T16:59:20.880 回答