版本:Unity 6 (6000.0)
语言英语
  • C#

PlayableGraph.Connect

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户提出的每项建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您建议的更改无法提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提升 Unity 文档质量。

关闭

取消

声明

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

参数

source 源 Playable 或其句柄。
sourceOutputPort 源 Playable 中使用的端口。
destination 目标 Playable 或其句柄。
destinationInputPort 目标 Playable 中使用的端口。如果设置为 -1,将创建一个新端口并进行连接。

返回值

bool 如果连接成功,则返回 true。

说明

连接两个 Playable 实例。

连接确定 PlayableGraph 的拓扑结构以及其评估方式。

Playable 彼此连接可形成树结构。每个 Playable 都有一个输入组和一个输出组。这些被视为其他 Playable 可以附加到的“插槽”。

首次创建 Playable 时,其输入计数会重置为 0,这意味着它没有附加的子 Playable。输出表现稍有不同,每个 Playable 在首次创建时都会创建一个默认输出。

使用 PlayableGraph.Connect 方法将 Playable 连接在一起,并可以使用 PlayableGraph.Disconnect 从彼此断开连接。

Playable 可拥有的输入数量没有限制。

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