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

Завершено

В этом уроке вы изучите шаги, необходимые для следующих действий:

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

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

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

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

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

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

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

    снимок экрана вариантов выбора для проверки версии AR Foundation для Менеджера пакетов.

Импорт ресурсов учебника

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

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

    Заметка

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

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

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

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

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

    • ButtonParent prefabs
    • инструкции префаб
    • ParentAnchor префабы
    • Измените значения трансформации ButtonParent /Позиция на следующие: X = 0.0, Y = 1.6, Z = 0.6
    • Измените значения Трансформ/Позиция инструкции на следующие: X = -0.8, Y = 2.0, Z = 2.0
    • Измените значения Transform/Position ParentAnchor следующим образом: X = -0.3, Y = 1.5, Z = 0.6 Снимок экрана префабов, добавленных в область иерархии.

    Совет

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

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

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

    • AR менеджер якорей (Script)
    • ОтключитьСистемуДиагностики (Скрипт)

    Заметка

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

    скриншот с добавлением AR Anchor Manager.

Настройка кнопок для управления сценой

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

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

  2. В области инспектора перейдите к компоненту нажатия кнопки. Он содержит событие "On Clicked ()".

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

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

    Снимок экрана, на котором показан Unity с событием OnClick настроенным для кнопки StartAzureSession.

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

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

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

  8. Выберите из раскрывающегося списка No Function и затем выберите AnchorModuleScript>StopAzureSession ().

    снимок экрана Unity с настроенным событием OnClick кнопки StopAzureSession.

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

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

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

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

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

    снимок экрана Unity с настроенным событием OnClick кнопки CreateAzureAnchor.

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

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

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

  17. Выберите раскрывающийся список No Function, а затем выберите AnchorModuleScript>RemoveLocalAnchor.

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

    снимок экрана Unity с настроенным событием OnClick кнопки RemoveLocalAnchor.

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

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

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

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

    снимок экрана Unity с событием OnClick, настроенным для кнопки FindAzureAnchor.

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

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

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

  26. Выберите раскрывающийся список No Function, затем выберите AnchorModuleScript>DeleteAzureAnchor.

    снимок экрана Unity с настроенным событием OnClick кнопки DeleteAzureAnchor.

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

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

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

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

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

    снимок экрана Unity с настроенным диспетчером пространственных привязок.

Попробуйте использовать основные функции пространственных привязок Azure

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

Совет

Чтобы напомнить себе, как создавать и развертывать проект 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 используют Интернет для сохранения и загрузки данных привязки. Убедитесь, что устройство подключено к Интернету.