Упражнение. Начало работы с пространственными привязками Azure

Завершено

На этом уроке вы изучите этапы выполнения следующих задач.

  • Запуск и завершение сеанса пространственных привязок Azure.
  • Создание, передача и скачивание пространственных привязок на одном устройстве.

В результате выполнения предварительных требований для этого модуля learn вы уже должны иметь проект Unity, настроенный и настроенный для OpenXR и MRTK3. Откройте этот проект, а затем проверка, чтобы убедиться, что выбраны соответствующие возможности:

  1. Перейдите к разделу "Изменить > проект Параметры проигрывателя>" Параметры >публикации.
  2. Прокрутите вниз до раздела "Возможности" и выберите следующее, если они еще не выбраны:
  • SpatialPerception;
  • InternetClient;
  • PrivateNetworkClientServer.

По завершении закройте окно Project Параметры и перейдите к следующему шагу.

Установка встроенных пакетов Unity и импорт ресурсов учебника

  1. В строке меню выберите Окно> диспетчер пакетов.

  2. Убедитесь, что установлена версия AR Foundation 5.0.3 или последняя версия.

    Screenshot of selections for verifying the AR Foundation version for Package Manager.

Импорт ресурсов руководства

  1. Добавьте пакет SDK для Пространственных привязок Azure версии 2.12 или последнюю версию в проект, следуя этому руководству.

  2. Загрузите и импортируйте следующие пользовательские пакеты Unity в этом порядке:

    Примечание.

    При импорте MRTK3 и ASA могут возникнуть ошибки, если версия пакета ARFoundation не соответствует импортированной версии ARSubsystems. Пока это не будет исправлено, вы можете вручную добавить com.unity.xr.arsubsystems версии 5.0.2 в диспетчер пакетов проекта в качестве обходного решения.

    Вы получите предупреждение о том, что ARSubsystems не рекомендуется использовать, но его можно игнорировать. Если вы видите предупреждения CS0618, которые говорят "WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)", вы также можете игнорировать эти предупреждения.

Подготовка сцены

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

  1. На панели "Проект" перейдите в раздел "Активы> MRTK". Tutorials.AzureSpatialAnchors>Prefabs folder, а затем перетащите следующие префабы в область иерархии, чтобы добавить их в сцену:

    • ButtonParent;
    • Instructions;
    • ParentAnchor.
    • Измените значения Tranform/Position buttonParent на следующие: X = 0.0, Y = 1.6, Z = 0,6
    • Измените значения Tranform/Position инструкций следующим образом: X = -0.8, Y = 2.0, Z = 2.0
    • Измените значения Tranform/Position в parentAnchor следующим образом: X = -0.3, Y = 1.5, Z = 0,6Screenshot of prefabs added to the Hierarchy pane.

    Совет

    Если в сцене находятся большие значки (например, большие значки "T") отвлекающие, их можно скрыть , открыв раскрывающийся список Gizmos и выключив отображение значков для отдельных объектов.

  2. В окне иерархии выберите MRTK XR Rig> Камера Offset.

  3. В области инспектора нажмите кнопку "Добавить компонент", чтобы добавить следующие компоненты:

    • Диспетчер привязки AR (сценарий)
    • DisableDiagnosticsSystem (Script)

    Примечание.

    При добавлении компонента AR Anchor Manager (Script) компонент источника XR автоматически добавляется, так как компонент AR Anchor Manager (Script) требует его.

    Screenshot of adding AR Anchor Manager.

Настройка кнопок для работы со сценой

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

  1. В области иерархии разверните объект ButtonParent и выберите первый дочерний объект StartAzureSession.

  2. В области инспектора перейдите к компоненту кнопки с возможностью нажатия. У него есть событие on Clicked () ().

  3. В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().

  4. Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>StartAzureSession (). Эта функция будет выполнена при активации события.

    Screenshot that shows Unity with the StartAzureSession button's OnClick event configured.

  5. В области иерархии в дочернем списке ButtonParent выберите StopAzureSession

  6. В области инспектора перейдите к компоненту кнопки с возможностью нажатия.

  7. В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().

  8. Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>StopAzureSession ().

    Screenshot of Unity with the StopAzureSession button's OnClick event configured.

  9. В области иерархии в дочернем списке ButtonParent выберите CreateAzureAnchor.

  10. В области инспектора перейдите к компоненту кнопки с возможностью нажатия.

  11. В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().

  12. Выберите раскрывающийся список "Нет функции" и выберите AnchorModuleScript>CreateAzureAnchor.

  13. Снова выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в параметре AnchorModuleScript.CreateAzureAnchor.

    Screenshot of Unity with the CreateAzureAnchor button's OnClick event configured.

  14. В области иерархии в дочернем списке ButtonParent выберите RemoveLocalAnchor.

  15. В области инспектора перейдите к компоненту кнопки с возможностью нажатия.

  16. В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().

  17. Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>RemoveLocalAnchor.

  18. Снова выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в параметре AnchorModuleScript.RemoveLocalAnchor.

    Screenshot of Unity with the RemoveLocalAnchor button's OnClick event configured.

  19. В области иерархии в дочернем списке ButtonParent выберите FindAzureAnchor.

  20. В области инспектора перейдите к компоненту кнопки с возможностью нажатия.

  21. В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().

  22. Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>FindAzureAnchor.

    Screenshot of Unity with the FindAzureAnchor button's OnClick event configured.

  23. В области иерархии в дочернем списке ButtonParent выберите DeleteAzureAnchor.

  24. В области инспектора перейдите к компоненту кнопки с возможностью нажатия.

  25. В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().

  26. Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>DeleteAzureAnchor.

    Screenshot of Unity with the DeleteAzureAnchor button's OnClick event configured.

Подключение сцены к ресурсу Azure

  1. В области иерархии выберите объект ParentAnchor.

  2. На панели инспектора найдите компонент диспетчера пространственных привязок (скрипт).

  3. Настройте раздел Учетные данные с использованием учетных данных из учетной записи пространственных привязок Azure, созданной в рамках предварительных требований для этой серии учебников.

    • В поле Идентификатор учетной записи Пространственных привязок вставьте значение Идентификатор учетной записи вашей учетной записи Пространственных привязок Azure.
    • В поле Ключ учетной записи Пространственных привязок вставьте значение первичного или дополнительногоключа доступа из учетной записи Пространственных привязок Azure.
    • В поле Домен учетной записи Пространственных привязок вставьте значение Домен учетной записи вашей учетной записи Пространственных привязок Azure.

    Screenshot of Unity with the Spatial Anchor Manager configured.

Тестирование базового поведения пространственных привязок Azure

Пространственные привязки Azure не могут выполняться в Unity, поэтому, чтобы проверить их функциональность, необходимо собрать и развернуть проект на вашем устройстве.

Совет

Напоминание о том, как создать и развернуть проект Unity в HoloLens 2, см . в статье "Создание приложения в HoloLens 2 " начиная с сборки и развертывания раздела приложения .

Запустив приложение на устройстве, выполните инструкции, отображаемые на панели с инструкциями из руководства по Пространственным привязкам Azure.

  1. Переместите куб в другое расположение.
  2. Запустите сеанс Azure.
  3. Создайте привязку Azure в расположении куба.
  4. Завершите сеанс Azure.
  5. Удалите локальную привязку, чтобы разрешить пользователю перемещать куб.
  6. Переместите куб в другое расположение.
  7. Запустите сеанс Azure.
  8. Найдите привязку Azure, чтобы разместить куб в расположении из шага 3.
  9. Удалите привязку Azure.
  10. Завершите сеанс Azure.

Внимание

Пространственные привязки Azure используют Интернет для сохранения и загрузки данных привязки. Убедитесь, что устройство подключено к Интернету.