Version: 2023.1
public bool Connect (U source, int sourceOutputPort, V destination, int destinationInputPort);

参数

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(); } }