版本:Unity 6 (6000.0)
语言:英语
可播放 API
ScriptPlayable 和 PlayableBehaviour

可播放图

可播放图定义了一组可播放的输出,这些输出绑定到 游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、相机、路径点等等。游戏对象的功能由附加到它的组件定义。 更多信息
参见 词汇表
组件游戏对象的组成部分。一个游戏对象可以包含任意数量的组件。Unity 有许多内置组件,您也可以通过编写继承自 MonoBehaviour 的脚本创建自己的组件。 更多信息
参见 词汇表
。可播放图还定义了一组 可播放对象一个 API,通过将数据源以树状结构组织和评估来提供创建工具、效果或其他游戏机制的方法,这种树状结构被称为可播放图。 更多信息
参见 词汇表
及其关系。图 1 提供了一个示例。

可播放图负责其可播放对象及其输出的生命周期。使用可播放图来创建、连接和销毁可播放对象。

Figure 1: A sample PlayableGraph
图 1:一个可播放图示例

在图 1 中,当显示可播放图时,为了简洁起见,图节点名称中的“可播放”一词被删除。例如,名为“AnimationClipPlayable”的节点显示为“AnimationClip”。

可播放对象是一个 C# 结构体,它实现了 IPlayable 接口。它用于定义它与其他可播放对象的关系。类似地,可播放输出是一个 C# 结构体,它实现了 IPlayableOutput,用于定义可播放图的输出。

图 2 显示了最常见的核心可播放对象类型。图 3 显示了核心可播放输出类型。

Figure 2: Core playable types
图 2:核心可播放对象类型
Figure 3: Core playable output types
图 3:核心可播放输出类型

可播放对象核心类型和可播放输出类型以 C# 结构体形式实现,以避免为 垃圾回收分配内存

‘Playable’ 是所有可播放对象的基类型,这意味着您始终可以隐式将可播放对象强制转换为它。反之则不行,如果显式将‘Playable’ 强制转换为不兼容的类型,则会抛出异常。它还定义了可以在可播放对象上执行的所有基本方法。要访问特定于类型的 method,您需要将可播放对象强制转换为适当的类型。

‘PlayableOutput’ 也是如此,它是所有可播放输出的基类型,它定义了基本方法。

注意:PlayablePlayableOutput 不会公开太多方法。相反,‘PlayableExtensions’ 和 ‘PlayableOutputExtensions’ 静态类提供了扩展方法。

所有非抽象的可播放对象都具有一个公共静态方法 Create(),用于创建对应类型的可播放对象。‘Create()’ 方法始终以 PlayableGraph 作为其第一个参数,该图拥有新创建的可播放对象。某些类型的可播放对象可能需要额外的参数。非抽象的可播放输出也公开了 Create() 方法。

有效的可播放输出应该链接到可播放对象。如果可播放输出没有链接到可播放对象,则可播放输出将没有任何作用。要将可播放输出链接到可播放对象,请使用 PlayableOutput.SetSourcePlayable() 方法。链接的可播放对象充当该特定可播放输出的可播放对象树的根。

要将两个可播放对象连接在一起,请使用 PlayableGraph.Connect() 方法。请注意,某些可播放对象无法接收输入。

使用 PlayableGraph.Create() 静态方法创建 PlayableGraph。

使用 PlayableGraph.Play() 方法播放 PlayableGraph。

使用 PlayableGraph.Stop() 方法停止播放的 PlayableGraph。

使用 PlayableGraph.Evaluate() 方法在特定时间评估 PlayableGraph 的状态。

使用 PlayableGraph.Destroy() 方法手动销毁 PlayableGraph。此方法会自动销毁 PlayableGraph 创建的所有可播放对象和可播放输出。您必须手动调用此销毁方法来销毁 PlayableGraph,否则 Unity 会发出错误消息。


  • 2017-07-04 页面发布

  • Unity 2017.1 中的新增内容 NewIn20171

可播放 API
ScriptPlayable 和 PlayableBehaviour