PlayableGraph определяет набор воспроизводимых выходных данных, привязанных к GameObjectфундаментальному объекту в сценах Unity, который может представлять персонажи, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь или компонентФункциональная часть GameObject. GameObject может содержать любое количество компонентов. В Unity есть много встроенных компонентов, и вы можете создавать свои собственные, написав сценарии, которые наследуются от MonoBehaviour. Подробнее
См. в Словарь. PlayableGraph также определяет набор playablesAPI, который позволяет создавать инструменты, эффекты или другие игровые механизмы путем организации и оценки источники данных в древовидной структуре, известной как PlayableGraph. Подробнее
См. в Словарь и их связи. На рис. 1 приведен пример.
PlayableGraph отвечает за жизненный цикл своих playables и их выходных данных. Используйте PlayableGraph для создания, подключения и уничтожения игровых объектов.
На рис. 1 при отображении PlayableGraph термин «Playable» удален из имен узлов графа, чтобы сделать его более компактным. Например, узел с именем «AnimationClipPlayable» отображается как «AnimationClip».
Playable — это структура C#, реализующая интерфейс IPlayable. Он используется для определения его отношений с другими игровыми объектами. Аналогично, воспроизводимый вывод — это структура C#, которая реализует IPlayableOutput и используется для определения вывода PlayableGraph.
На рис. 2 показаны наиболее распространенные основные игровые типы. На рис. 3 показаны основные типы воспроизводимых выходных данных.
Воспроизводимые базовые типы и воспроизводимые выходные типы реализованы в виде структур C#, чтобы избежать выделения памяти для сборки мусора.
"Playable" — это базовый тип для всех playables, что означает, что вы всегда можете неявно применить к нему playable. Обратное неверно, и будет выдано исключение, если «Playable» явно приведен к несовместимому типу. Он также определяет все основные методы, которые могут быть выполнены на воспроизводимом объекте. Чтобы получить доступ к методам, специфичным для типа, вам необходимо привести наш playable к соответствующему типу.
То же самое верно и для ‘PlayableOutput’, это базовый тип для всех воспроизводимых выходов, и он определяет основные методы.
Примечание. Playable
и PlayableOutput
не предоставляют множество методов. Вместо этого статические классы PlayableExtensions и PlayableOutputExtensions предоставляют методы расширения.
Все неабстрактные playables имеют общедоступный статический метод Create()
, который создает playable соответствующего типа. Метод «Create()» всегда принимает PlayableGraph в качестве своего первого параметра, и этот граф владеет вновь созданным воспроизводимым объектом. Для некоторых типов playables могут потребоваться дополнительные параметры. Неабстрактные воспроизводимые выходные данные также предоставляют метод Create()
.
Действительный вывод playable должен быть связан с playable. Если воспроизводимый вывод не связан с воспроизводимым, воспроизводимый вывод ничего не делает. Чтобы связать воспроизводимый вывод с воспроизводимым, используйте метод PlayableOutput.SetSourcePlayable()
. Связанный воспроизводимый объект действует как корень дерева воспроизводимых объектов для этого конкретного воспроизводимого вывода.
Чтобы соединить два playables вместе, используйте метод PlayableGraph.Connect()
. Обратите внимание, что некоторые игровые объекты не могут иметь входных данных.
Используйте статический метод PlayableGraph.Create()
для создания PlayableGraph.
Воспроизведение PlayableGraph с помощью метода PlayableGraph.Play()
.
Остановите воспроизведение PlayableGraph с помощью метода PlayableGraph.Stop()
.
Оцените состояние PlayableGraph в определенное время с помощью метода PlayableGraph.Evaluate()
.
Уничтожить PlayableGraph вручную с помощью метода PlayableGraph.Destroy()
. Этот метод автоматически уничтожает все playables и playable outputs, созданные PlayableGraph. Вы должны вручную вызвать этот метод уничтожения, чтобы уничтожить PlayableGraph, иначе Unity выдаст сообщение об ошибке.
- New in Unity 2017.1