PlayableDirector
класс в UnityEngine.Playables
Наследуется от:Behaviour
Выполнено в:UnityEngine.DirectorModule
Интерфейсы приспособлений:IExposedPropertyTable
Описание
Управление воспроизведением объектов ,Playable,.
PlayableDirector в основном используется пакетом Timeline для обработки привязок к объектам сцены и управления воспроизведением PlayableGraph.
Объект PlayableDirector создает PlayableGraph из PlayableAsset. После создания графа используйте PlayableDirector для управления воспроизведением графа Playable. Для управления воспроизведением PlayableGraphиспользуйте:
Чтобы получать уведомления об изменениях состояния воспроизведения, подпишитесь на:
Для обработки ссылок между ассетами и объектами сцены PlayableDirector реализует IExposedPropertyTable. Для установки или получения привязок используйте:
Несколько PlayableDirectors могут ссылаться на один и тот же PlayableAsset. Когда это происходит, каждый PlayableDirector создает свой собственный независимый PlayableGraph со своими собственными привязками сцены.
В следующем примере показано, как использовать Playable Director для привязки объектов сцены к ассетам и как управлять Playable Graph.
using System; using UnityEngine; using UnityEngine.Playables; using Object = UnityEngine.Object; [RequireComponent(typeof(PlayableDirector))] public class PlayableDirectorSample : MonoBehaviour { PlayableDirector m_Director; TestPlayableAsset m_TestAsset; void Start() { m_Director = gameObject.GetComponent<PlayableDirector>(); m_TestAsset = ScriptableObject.CreateInstance<TestPlayableAsset>(); m_Director.playableAsset = m_TestAsset; m_Director.SetGenericBinding(m_TestAsset, gameObject); BuildGraphAndPlay(); } void BuildGraphAndPlay() { m_Director.RebuildGraph(); if (m_Director.playableGraph.IsValid()) { m_Director.Play(); } } } [Serializable] class TestBehaviour : PlayableBehaviour { public override void OnPlayableCreate(Playable playable) { } public override void OnPlayableDestroy(Playable playable) { } public Object target { get; set; } public override void OnBehaviourPlay(Playable playable, FrameData info) { base.OnBehaviourPlay(playable, info); if (target != null) { Debug.Log($"{target.name}-{info.frameId}"); } } } [Serializable] class TestPlayableAsset : PlayableAsset { public override Playable CreatePlayable(PlayableGraph graph, GameObject owner) { ScriptPlayable<TestBehaviour> behavior = ScriptPlayable<TestBehaviour>.Create(graph); var director = owner.GetComponent<PlayableDirector>(); Object target = director.GetGenericBinding(this); behavior.GetBehaviour().target = target; return behavior; } }
Свойства
| Свойство | Описание |
|---|---|
| duration | Продолжительность текущего подключенного Playable в секундах. |
| extrapolationMode | Управляет тем, как увеличивается время, когда оно превышает длительность воспроизводимого файла. |
| initialTime | Время, в которое Playable должен начаться при первом проигрывании. |
| playableAsset | PlayableAsset, который используется для создания экземпляра воспроизводимого файла для воспроизведения. |
| playableGraph | PlayableGraph создан PlayableDirector. |
| playOnAwake | Начнется ли воспроизведение воспроизводимого элемента сразу после пробуждения компонента. |
| state | Текущее состояние воспроизведения компонента. (Только для чтения) |
| time | Текущее время компонента. Это значение увеличивается в соответствии с PlayableDirector.timeUpdateMode во время воспроизведения. Вы также можете изменить это значение вручную. |
| timeUpdateMode | Управляет тем, как увеличивается время при воспроизведении. |
Открытые методы
| Метод | Описание |
|---|---|
| ClearGenericBinding | Снимает привязку объекта ссылки. |
| ClearReferenceValue | Очистка открытого справочного значения. |
| DeferredEvaluate | Расписывает PlayableDirector на выполнение PlayableGraph.Evaluate на PlayableGraph, связанном с PlayableDirector.playableAsset при следующем обновлении. |
| Evaluate | Выполняет PlayableGraph.Evaluate на PlayableGraph, связанном с PlayableDirector.playableAsset на PlayableDirector.time. |
| GetGenericBinding | Возвращает привязку к объекту ссылки. |
| GetReferenceValue | Получает привязку ExposedReference. |
| Pause | Приостанавливает воспроизведение текущего воспроизводимого файла. |
| Play | Устанавливает воспроизводимый файл с помощью предоставленного PlayableAsset и начинает воспроизведение. |
| RebindPlayableGraphOutputs | Пересвязывает каждый PlayableOutput из PlayableGraph. |
| RebuildGraph | Отбрасывает существующий PlayableGraph и создает новый экземпляр. |
| Resume | Возобновление проигрывания приостановленного игрового элемента. |
| SetGenericBinding | Устанавливает привязку объекта ссылки из PlayableBinding. |
| SetReferenceValue | Задает значение ExposedReference. |
| Stop | Остановка воспроизведения текущего Playable и уничтожение соответствующего графа. |
Мероприятия
| Мероприятие | Описание |
|---|---|
| paused | Событие, возникающее при приостановке компонента PlayableDirector. |
| played | Событие, которое возникает, когда компонент PlayableDirector начал воспроизводиться. |
| stopped | Событие, возникающее при остановке компонента PlayableDirector. |
Унаследованные члены 4
Свойства
| Свойство | Описание |
|---|---|
| enabled | True, если это Поведение включено, в противном случае false. |
| isActiveAndEnabled | Проверяет, включён ли компонент, прикреплен ли он к GameObject, который активен в иерархии, и вызван ли OnEnable компонента. |
| gameObject | GameObject, к которому прикреплен данный компонент. Компонент всегда прикрепляется к игровому объекту. |
| tag | Тег этого игрового объекта. |
| transform | Transform прикреплен к этому GameObject. |
| transformHandle | TransformHandle этого GameObject. |
| hideFlags | Должен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем? |
| name | Имя объекта. |
Открытые методы
| Метод | Описание |
|---|---|
| BroadcastMessage | Вызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте или любом из его дочерей. |
| CompareTag | Проверяет тег GameObject на соответствие определенному тегу. |
| GetComponent | Получает ссылку на компонент типа T на том же GameObject, что и указанный компонент. |
| GetComponentInChildren | Получает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любого ребенка GameObject. |
| GetComponentIndex | Получает индекс компонента на его родительском GameObject. |
| GetComponentInParent | Получает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любой родитель GameObject. |
| GetComponents | Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент. |
| GetComponentsInChildren | Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и на любого ребенка GameObject. |
| GetComponentsInParent | Получает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и любой родитель GameObject. |
| SendMessage | Вызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте. |
| SendMessageUpwards | Вызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте и на каждом предшественнике поведения. |
| TryGetComponent | Получает компонент указанного типа, если он существует. |
| GetInstanceID | Получает экземпляр ID объекта. |
| ToString | Возвращает имя объекта. |
Статические методы
| Метод | Описание |
|---|---|
| Destroy | Удаляет GameObject, компонент или ресурс. |
| DestroyImmediate | Немедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования. |
| DontDestroyOnLoad | Не уничтожать целевой Объект при загрузке нового Scene. |
| FindAnyObjectByType | Получает любой активный загруженный объект типа Type. |
| FindFirstObjectByType | Получает первый активный загруженный объект типа Type. |
| FindObjectsByType | Получает список всех загруженных объектов типа Type. |
| Instantiate | Клонирует исходный объект и возвращает клон. |
| InstantiateAsync | Захватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation. |
Операторы
| Оператор | Описание |
|---|---|
| bool | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |