【发布时间】:2016-06-08 14:06:49
【问题描述】:
我正在编写一个游戏/程序,每隔几秒钟就必须将大量数据写入硬盘 - 这需要几秒钟才能完成,并且自然会导致游戏在这段时间内挂起。
但是,当写入完成后游戏继续时,游戏会跳过几帧。
我需要 Unity 绝对跳过无帧。如何强制 Unity 引擎在写入完全完成之前停止执行,以便在恢复时不会跳过任何帧?
为了提供一些上下文,我每帧捕获一个屏幕截图,将它们作为 Texture2D 存储在队列中。当队列中有超过 100 帧的 Texture2D 时,我将其作为 PNG 写入磁盘,并清除队列。
我想在写入时暂停渲染/执行,以便输出(单独)是无缝的。
【问题讨论】:
-
如果它导致游戏在该功能完成时挂起,那么为什么不使用另一个线程来执行该功能,这样它就不会停止主线程?多线程。
-
因为这将允许渲染在数据写入磁盘时继续进行。在我的特定上下文中,我希望在写入 PNG 时完全暂停执行,然后在完成后立即恢复。我不希望它在尝试写入磁盘时执行/捕获帧,因为捕获比写入快得多。
-
但是你为什么要等着写呢?为什么不一边保存一边写?一个接一个。
-
顺便说一句,您正在尝试做的事情非常非常复杂。你会得到任何简单的罐头答案 Ben - 很抱歉这个坏消息:/
标签: function unity3d rendering skip pause