source | 源可播放项或其句柄。 |
sourceOutputPort | 源可播放项所用的端口。 |
destination | 目标可播放项或其句柄。 |
destinationInputPort | The port used in the destination playable. If set to -1, a new port is created and connected. |
bool 如果连接成功,则返回 true。
连接两个 Playable 实例。
这些连接决定了 PlayableGraph 的拓扑及其评估方式。
将可播放项连接在一起可形成树结构。每个可播放项都有一组输入和输出。这些输入和输出可以被视为附加其他可播放项的“槽”。
首次创建可播放项时,其输入计数将重置为 0,这意味着它没有附加任何子可播放项。输出的行为略有不同,首次创建各个可播放项时,系统会为其创建默认输出。
使用 PlayableGraph.Connect 方法将可播放项连接在一起,而使用 PlayableGraph.Disconnect 则可以断开它们之间的连接。
可播放项的输入数量没有限制。
using UnityEngine; using UnityEngine.Animations; using UnityEngine.Playables;
public class GraphCreationSample : MonoBehaviour { PlayableGraph m_Graph; public AnimationClip clipA; public AnimationClip clipB;
void Start() { // Create the PlayableGraph. m_Graph = PlayableGraph.Create();
// Add an AnimationPlayableOutput to the graph. var animOutput = AnimationPlayableOutput.Create(m_Graph, "AnimationOutput", GetComponent<Animator>());
// Add an AnimationMixerPlayable to the graph. var mixerPlayable = AnimationMixerPlayable.Create(m_Graph, 2);
// Add two AnimationClipPlayable to the graph. var clipPlayableA = AnimationClipPlayable.Create(m_Graph, clipA); var clipPlayableB = AnimationClipPlayable.Create(m_Graph, clipB);
// Create the topology, connect the AnimationClipPlayable to the // AnimationMixerPlayable. m_Graph.Connect(clipPlayableA, 0, mixerPlayable, 0); m_Graph.Connect(clipPlayableB, 0, mixerPlayable, 1);
// Use the AnimationMixerPlayable as the source for the AnimationPlayableOutput. animOutput.SetSourcePlayable(mixerPlayable);
// Set the weight for both inputs of the mixer. mixerPlayable.SetInputWeight(0, 1); mixerPlayable.SetInputWeight(1, 1);
// Play the graph. m_Graph.Play(); }
private void OnDestroy() { // Destroy the graph once done with it. m_Graph.Destroy(); } }