共计 1621 个字符,预计需要花费 5 分钟才能阅读完成。
举荐:将 NSDT 场景编辑器退出你的 3D 工具链 https://www.mvrlink.com/unity3d-the-playablegraph/
3D 工具集:NSDT 简石数字孪生
https://www.mvrlink.com/unity3d-the-playablegraph/
PlayableGraphPlayableGraph 定义一组绑定到 GameObject 或组件的可播放输入项。PlayableGraph 还定义一组可播放项及其依赖关系。图 1 提供了一个示例。PlayableGraph 负责管理可播放项及其输入的生命周期。应用 PlayableGraph 可创立、连贯和销毁可播放项。
图 1:PlayableGraph 示例在图 1 中,显示 PlayableGraph 时,为了紧凑,从图形节点的名称中移除了“Playable”一词。例如,名为“AnimationClipPlayable”的节点显示为“AnimationClip”。
可播放项是一种继承 IPlayable 接口的 C# 构造体。它用于定义其与其余可播放项的关系。同样,可播放项输入是继承 IPlayableOutput 接口的 C# 构造体,用于定义 PlayableGraph 的输入。图 2 显示了最常见的外围可播放项类型。图 3 显示了外围可播放项输入类型。
图 2:外围可播放项类型
图 3:外围可播放项输入类型 The playable core types and playable output types are implemented as C# structs to avoid allocating memory for garbage collection.“Playable”是所有可播放项的根本类型,这意味着您总是能够隐式将一个可播放项转换为 Playable。相同的状况并不成立,如果将“Playable”显式转换为不兼容类型,则会抛出异样。它还定义能在可播放项上执行的所有根本办法。要拜访特定于类型的办法,您须要将可播放项转换为相应类型。PlayableOutput 也是如此,它是所有可播放项输入的根本类型,定义了根本办法。留神:Playable 和 PlayableOutput 未裸露大量办法。但“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 会收回一条谬误音讯。