Модульная компоновка MRTK — MRTK2

Одной из новых возможностей Смешанная реальность Toolkit версии 2 является улучшенная компонентизация. По возможности отдельные компоненты изолированы от всех, кроме базового слоя.

Сведенные зависимости

MRTK версии 2 был намеренно разработан, чтобы быть модульным и свести к минимуму зависимости между системными службами (например, пространственные осведомленности).

Из-за характера некоторых системных служб (например, ввода и телепортации) существует небольшое количество зависимостей.

Хотя ожидается, что службам потребуется один или несколько компонентов поставщика данных, между ними нет прямых связей. То же самое относится к функциям пакета SDK (например, компонентам пользовательского интерфейса).

Обмен данными между компонентами

Чтобы гарантировать отсутствие прямых связей между компонентами, MRTK версии 2 использует интерфейсы для взаимодействия между службами, поставщиками данных и кодом приложения. Эти интерфейсы определяются в , и весь обмен данными направляется через основной компонент Смешанная реальность Toolkit.

Использование системы пространственной осведомленности через интерфейсы

Минимизация объема импорта MRTK

На данный момент MRTK импортируется как один пакет Foundation (игнорируя на мгновение существование пакета примеров, который является полностью необязательным пакетом). Этот объем можно уменьшить, вручную вырезав импортированные файлы, хотя это процесс с высокой степенью ручной работы, который не имеет четко определенного руководства.

Можно снять флажки произвольных элементов во время импорта пакета Foundation. Однако не рекомендуется делать это на ранней стадии разработки, так как это может нарушить функциональность. После определения окончательного набора функций приложения можно удалить ненужные поставщики и службы в следующих папках:

  • MRTK/Services
  • MRTK/Providers
  • MRTK,SDK/Компоненты

Примечание

Для MRTK версии 2.x требуется содержимое папки Assets/MRTK/Core.

Предстоящие функции

Архитектура приложения

MRTK будет иметь поддержку, позволяющую создавать приложения с различными архитектурами, в том числе:

При выборе архитектуры приложения важно учитывать гибкость проектирования и производительность приложения. Описанные здесь архитектуры не подходят для каждого приложения.

Указатель службы MixedRealityToolkit

MRTK позволяет (и автоматически настраивает) сцены приложений для использования компонента указателя служб по умолчанию MixedRealityToolkit . Этот компонент включает поддержку настройки систем и поставщиков данных MRTK с помощью инспекторов конфигурации и управляет сроком существования компонентов и основным поведением (например, когда следует обновлять).

Все системы представлены в инспекторе конфигурации ядра независимо от того, присутствуют ли они или включены в проекте. Дополнительные сведения см. в руководстве по настройке Смешанная реальность.

Отдельные компоненты службы

Некоторые разработчики выразили желание включить отдельные компоненты службы в иерархию сцены приложения. Чтобы обеспечить такое использование, службы должны быть либо инкапсулированы в пользовательском регистраторе, либо быть саморегистрирующимися или самоуправляемыми.

Саморегистрационная служба реализует IMixedRealityServiceRegistrar и регистрирует себя, чтобы код приложения мог обнаруживать экземпляр службы через реестр.

Самоуправляемая служба может быть реализована в виде одноэлементного объекта в иерархии сцены. Этот объект предоставляет свойство экземпляра и, которое код приложения может использовать для прямого доступа к функциональным возможностям службы.

Указатель пользовательской службы

Некоторые разработчики запросили возможность создания пользовательского компонента указателя служб. Пользовательские указатели служб реализуют IMixedRealityServiceRegistrar интерфейс и управляют жизненным циклом и основным поведением активных служб.

Гибридная архитектура

MRTK будет поддерживать гибридную архитектуру, в которой разработчики могут сочетать предыдущие подходы по мере необходимости. Например, разработчик может начать с указателя MixedRealityToolkit служб и добавить службу самостоятельной регистрации.

Примечание

При выборе гибридной архитектуры важно помнить о любом дублировании работы (например, получении данных контроллера из нескольких компонентов).