Создать PlayableGraph с различными выходами
В этом примере показано, как создать PlayableGraph с двумя различными типами воспроизводимых выходов: AudioPlayableOutput и AnimationPlayableOutput. В этом примере также показано, как воспроизводить AudioClip через AudioClipPlayable, подключенный к AudioPlayableOutput.
Предварительные условия
Перед тем, как использовать скрипт DifferentOutputs в вашем проекте, в нем должно быть следующее:
- GameObject, например, куб или капсула. Вам не нужно вручную добавлять компонент Animator или компонент Audio Source к этому GameObject. Атрибут
RequireComponentдобавляет эти компоненты, если они не присутствуют. - Клип анимации, который анимирует свойства GameObject. Например, анимация, которая изменяет положение и вращение GameObject. Если в вашем проекте нет клипа анимации, вы не сможете выбрать клип и ничего не произойдет во время выполнения.
- Аудиоклип. Если в вашем проекте нет аудиоклипа, вы не сможете воспроизводить аудио, пока GameObject анимирует.
Добавление и запуск скрипта
Чтобы использовать скрипт DifferentOutputs в вашем проекте, выполните следующие действия:
-
Добавьте компонент скрипта в файл GameObject. Назовите файл скрипта
DifferentOutputs.csи используйте следующий код:using UnityEngine; using UnityEngine.Animations; using UnityEngine.Audio; using UnityEngine.Playables; [RequireComponent(typeof(Animator))] [RequireComponent(typeof(AudioSource))] public class DifferentOutputs : MonoBehaviour { public AnimationClip animationClip; public AudioClip audioClip; PlayableGraph graph; void Start() { // Create and name the graph. graph = PlayableGraph.Create("DifferentOutputs"); // Create the outputs. var animationOutput = AnimationPlayableOutput.Create(graph, "Animation", GetComponent<Animator>()); var audioOutput = AudioPlayableOutput.Create(graph, "Audio", GetComponent<AudioSource>()); // Create the playables. var animationClipPlayable = AnimationClipPlayable.Create(graph, animationClip); var audioClipPlayable = AudioClipPlayable.Create(graph, audioClip, true); // Connect the playables to an output. animationOutput.SetSourcePlayable(animationClipPlayable); audioOutput.SetSourcePlayable(audioClipPlayable); // Play the Graph. graph.Play(); } void OnDisable() { // Destroys all Playables and Outputs created by the graph. graph.Destroy(); } } В компоненте Скрипт выберите Клип Animation и Аудиоклип, которые будут воспроизводиться PlayableGraph во время выполнения.
Выберите Играть, чтобы переключить редактор в режим воспроизведения.
Если установлен пакет визуализатора PlayableGraph, выберите
MultiOutputSampleдля отображения PlayableGraph.
DifferentOutputs.