版本:Unity 6 (6000.0)
语言:英语
从 MovieTexture 迁移到 VideoPlayer
全景视频

使用 Video Player 组件进行时钟管理

本节介绍 Video Player 组件可用的不同时间更新模式以及它与这些模式的交互方式。

您可以使用 Video Player 组件来控制视频播放相对于其他交互行为的时间方式。例如,您可以将视频播放与动画或音频同步。您可以通过以下时间更新模式来实现这一点:

  • 音频数字信号处理 (DSP) 时钟
  • 游戏时间
  • 未缩放的游戏时间

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 时钟

音频 DSP 时钟来自音频模块。您可以通过 AudioSettings.dspTime 访问它。

游戏时间

游戏时间在 Time 模块中设置。您可以使用 C# 通过 Time.time 访问它。当您使用游戏时间(也称为缩放游戏时间)时,Unity 会遵循 Time 窗口中设置的时间缩放值。您还可以使用 C# 通过 Time.timeScale 修改时间缩放值。但是,如果捕获帧率或捕获时间增量具有非零值,游戏时间会根据控制 时间管理器Unity 设置管理器,允许您设置控制游戏内时间的多项属性。 更多信息
参见 术语表
的捕获帧率功能的规则进行更改。

注意:捕获时间增量与捕获帧率的倒数相同。这是对同一信息的另一种看法。

未缩放的游戏时间

当您使用未缩放的游戏时间时,Video Player 会忽略时间缩放值。未缩放的游戏时间来自 Time 模块。您可以使用 C# 通过 Time.unscaledTime 访问它。

其他资源

从 MovieTexture 迁移到 VideoPlayer
全景视频