Контроль времени воспроизводимого клипа
В этом примере показано, как использовать метод SetTime() для ручной установки начала воспроизводимого клипа. В этом примере также показано, как использовать метод Pause() для приостановки воспроизводимого клипа.
Предварительные условия
Перед тем, как использовать скрипт ControlTiming в вашем проекте, в нем должно быть следующее:
- GameObject, например, куб или капсула. Вам не нужно вручную добавлять компонент Animator к этому GameObject. Атрибут
RequireComponentдобавляет этот компонент, если он не присутствует. - Клип анимации, который анимирует свойства GameObject. Например, клип, который анимирует положение и вращение GameObject.
Добавление и запуск скрипта
Чтобы использовать скрипт ControlTiming в вашем проекте, выполните следующие действия:
-
Добавьте компонент скрипта в файл GameObject. Назовите файл скрипта
ControlTiming.csи используйте следующий код:using UnityEngine; using UnityEngine.Playables; using UnityEngine.Animations; [RequireComponent(typeof(Animator))] public class ControlTiming : MonoBehaviour { public AnimationClip clip; public float time; PlayableGraph graph; AnimationClipPlayable clipPlayable; void Start() { // Create and name the graph. graph = PlayableGraph.Create("ControlTiming"); var output = AnimationPlayableOutput.Create(graph, "Animation", GetComponent<Animator>()); // Wrap the clip in a playable. clipPlayable = AnimationClipPlayable.Create(graph, clip); // Connect the Playable to an output. output.SetSourcePlayable(clipPlayable); // Play the graph. graph.Play(); // Pause the clip playable. This stops time from progressing automatically. clipPlayable.Pause(); } void Update () { // Control the time manually. clipPlayable.SetTime(time); } void OnDisable() { // Destroy all Playables and Outputs created by the graph. graph.Destroy(); } } В компоненте Скрипт выберите клип анимации для приостановленного клипа. Вы также можете установить время начала в секундах. Если вы установите значение, которое больше длины клипа и клип не повторяется, клип проиграет последний кадр.
Выберите Играть, чтобы переключить редактор в режим воспроизведения.
В компоненте Скрипт поэкспериментируйте с различными временами начала. Поскольку анимационный клип приостановлен, отображается только первый кадр анимации.
Если у вас установлен пакет визуализатора PlayableGraph, используйте его для отображения PlayableGraph.