Playables 是可定制的运行时对象,可以连接在一起,并包含在 PlayableGraph 中以创建复杂的行为。
Playables 可用于创建复杂且灵活的数据评估树。Playables 是可以连接在一起的节点,之后每个 Playable 可以设置其每个子项的“权重”或“影响力”。
同一图表的 Playables 包含在 PlayableGraph 中。PlayableGraph 可以有多个输出,也称为“播放器”,它们实现 IPlayableOutput。PlayableOutput 获取其源 Playable 的结果,并将其应用于场景中的对象。例如,AnimationPlayableOutput 与图表中的 Playable 节点(“源 Playable”)以及场景中的 Animator 相连。播放图表时,Animator 会应用图表评估产生的动画姿态。PlayableOutputs 的数量与不同的 Playable 类型一样多:AnimationPlayableOutput、AudioPlayableOutput、TexturePlayableOutput、ScriptPlayableOutput 等。
ScriptPlayable<T> 是一种特殊的 Playable。其主要作用是作为“自定义”Playable。它是一个模板结构体,其中 T
必须从 PlayableBehaviour 派生。这些自定义 PlayableBehaviours 允许在图表评估的特定时刻编写行为(请参见 PlayableBehaviour.PrepareFrame 和 PlayableBehaviour.ProcessFrame)。TimelinePlayable 是 ScriptPlayable 的一个很好的例子,它控制着 Timeline 图表。它创建并链接在一起负责轨道和剪辑的 Playables。
播放 PlayableGraph 时,将遍历每个 PlayableOutput。在此遍历过程中,它将调用每个 Playable 上的 PrepareFrame 方法。这使 Playable 可以“为下一次评估做好准备”。在 PrepareFrame 阶段,每个 Playable 都可以修改其子项(通过添加新的输入或删除其中一些输入)。这使 Playable 能够在运行时“生成” Playable 树中新的子项分支。这意味着 Playable 树不是静态结构。它们可以适应和随时间变化。
准备就绪后,PlayableOutputs 负责处理结果,因此它们也称为“播放器”。在 AnimationPlayableOutput 的情况下,Animator 负责处理图表。在 ScriptPlayableOutput 的情况下,将在每个 ScriptPlayable 上调用 PlayableBehaviour.ProcessFrame。
注意:您可以对实现 IPlayable 的任何结构体使用 PlayableExtensions 方法。
注意:手册中提供了有关 Playables API 的详细文档。
Null | 返回无效的 Playable。 |