本节介绍 Video Player 组件可用的不同时间更新模式以及它与这些模式的交互方式。
您可以使用 Video Player 组件来控制视频播放相对于其他交互行为的时间方式。例如,您可以将视频播放与动画或音频同步。您可以通过以下时间更新模式来实现这一点:
Video Player 遵循 Unity 的捕获帧率 (Time.captureFramerate
) 和捕获时间增量 (Time.captureDeltaTime
)。
当您指定捕获帧率时,Video Player 的播放将变得同步,这意味着即使 Video Player 必须延迟游戏整体执行,它也会在预期的时间戳显示所有帧。捕获帧率的另一个优点是,它还阻止准备和搜索操作,从而导致一致且准确的结果。但是,这可能会减慢游戏执行速度,尤其是在视频必须与其他 场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是分块设计和构建您的游戏。 更多信息
参见 术语表 同步时。例如,Unity Recorder 使用此特殊的时间行为来生成流畅的录制内容。
捕获帧率只影响游戏时间。如果 Video Player 使用未缩放的游戏时间或音频 DSP 时钟,而捕获帧率正在使用中,Video Player 将忽略捕获帧率并使用异步播放。这意味着,Video Player 会根据需要跳过或重复帧,并且准备或搜索任务是异步的,以防止阻塞播放。但是,只有当您选择游戏时间作为 Video Player 的时间更新模式时,才会发生这种情况。
注意:在 Web 平台上,Unity 的 Video Player 不支持与 captureFramerate
同步播放。默认情况下,它使用正常的游戏时间更新模式描述的异步播放。
音频 DSP 时钟来自音频模块。您可以通过 AudioSettings.dspTime
访问它。
游戏时间在 Time 模块中设置。您可以使用 C# 通过 Time.time
访问它。当您使用游戏时间(也称为缩放游戏时间)时,Unity 会遵循 Time 窗口中设置的时间缩放值。您还可以使用 C# 通过 Time.timeScale
修改时间缩放值。但是,如果捕获帧率或捕获时间增量具有非零值,游戏时间会根据控制 时间管理器Unity 设置管理器,允许您设置控制游戏内时间的多项属性。 更多信息
参见 术语表 的捕获帧率功能的规则进行更改。
注意:捕获时间增量与捕获帧率的倒数相同。这是对同一信息的另一种看法。
当您使用未缩放的游戏时间时,Video Player 会忽略时间缩放值。未缩放的游戏时间来自 Time 模块。您可以使用 C# 通过 Time.unscaledTime
访问它。