Упражнение. Начало работы с пространственными привязками Azure
На этом уроке вы изучите этапы выполнения следующих задач.
- Запуск и завершение сеанса пространственных привязок Azure.
- Создание, передача и скачивание пространственных привязок на одном устройстве.
В результате выполнения предварительных требований для этого модуля learn вы уже должны иметь проект Unity, настроенный и настроенный для OpenXR и MRTK3. Откройте этот проект, а затем проверка, чтобы убедиться, что выбраны соответствующие возможности:
- Перейдите к разделу "Изменить > проект Параметры проигрывателя>" Параметры >публикации.
- Прокрутите вниз до раздела "Возможности" и выберите следующее, если они еще не выбраны:
- SpatialPerception;
- InternetClient;
- PrivateNetworkClientServer.
По завершении закройте окно Project Параметры и перейдите к следующему шагу.
Установка встроенных пакетов Unity и импорт ресурсов учебника
В строке меню выберите Окно> диспетчер пакетов.
Убедитесь, что установлена версия AR Foundation 5.0.3 или последняя версия.
Импорт ресурсов руководства
Добавьте пакет SDK для Пространственных привязок Azure версии 2.12 или последнюю версию в проект, следуя этому руководству.
Загрузите и импортируйте следующие пользовательские пакеты Unity в этом порядке:
- MRTK. HoloLens2.Unity.Tutorials.Assets.GettingStarted.3.0.0.unitypackage
- MRTK. HoloLens2.Unity.Tutorials.Assets.AzureSpatialAnchors.3.0.0.unitypackage
Примечание.
При импорте MRTK3 и ASA могут возникнуть ошибки, если версия пакета ARFoundation не соответствует импортированной версии ARSubsystems. Пока это не будет исправлено, вы можете вручную добавить com.unity.xr.arsubsystems версии 5.0.2 в диспетчер пакетов проекта в качестве обходного решения.
Вы получите предупреждение о том, что ARSubsystems не рекомендуется использовать, но его можно игнорировать. Если вы видите предупреждения CS0618, которые говорят "WorldAnchor.SetNativeSpatialAnchorPtr(IntPtr)", вы также можете игнорировать эти предупреждения.
Подготовка сцены
В этом разделе вы будете готовить сцену, добавляя отдельные префабы из руководства.
На панели "Проект" перейдите в раздел "Активы> 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,6
Совет
Если в сцене находятся большие значки (например, большие значки "T") отвлекающие, их можно скрыть , открыв раскрывающийся список Gizmos и выключив отображение значков для отдельных объектов.
В окне иерархии выберите MRTK XR Rig> Камера Offset.
В области инспектора нажмите кнопку "Добавить компонент", чтобы добавить следующие компоненты:
- Диспетчер привязки AR (сценарий)
- DisableDiagnosticsSystem (Script)
Примечание.
При добавлении компонента AR Anchor Manager (Script) компонент источника XR автоматически добавляется, так как компонент AR Anchor Manager (Script) требует его.
Настройка кнопок для работы со сценой
В этом разделе вы добавите сценарии в сцену, чтобы создать ряд событий кнопок, демонстрирующих основные принципы работы локальных привязок и пространственных привязок в приложении.
В области иерархии разверните объект ButtonParent и выберите первый дочерний объект StartAzureSession.
В области инспектора перейдите к компоненту кнопки с возможностью нажатия. У него есть событие on Clicked () ().
В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().
Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>StartAzureSession (). Эта функция будет выполнена при активации события.
В области иерархии в дочернем списке ButtonParent выберите StopAzureSession
В области инспектора перейдите к компоненту кнопки с возможностью нажатия.
В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().
Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>StopAzureSession ().
В области иерархии в дочернем списке ButtonParent выберите CreateAzureAnchor.
В области инспектора перейдите к компоненту кнопки с возможностью нажатия.
В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().
Выберите раскрывающийся список "Нет функции" и выберите AnchorModuleScript>CreateAzureAnchor.
Снова выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в параметре AnchorModuleScript.CreateAzureAnchor.
В области иерархии в дочернем списке ButtonParent выберите RemoveLocalAnchor.
В области инспектора перейдите к компоненту кнопки с возможностью нажатия.
В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().
Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>RemoveLocalAnchor.
Снова выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в параметре AnchorModuleScript.RemoveLocalAnchor.
В области иерархии в дочернем списке ButtonParent выберите FindAzureAnchor.
В области инспектора перейдите к компоненту кнопки с возможностью нажатия.
В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().
Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>FindAzureAnchor.
В области иерархии в дочернем списке ButtonParent выберите DeleteAzureAnchor.
В области инспектора перейдите к компоненту кнопки с возможностью нажатия.
В иерархии выберите объект ParentAnchor, а затем перетащите его в инспектор и удалите его в поле "Нет( объект) события On Clicked().
Выберите раскрывающийся список "Нет функции", а затем выберите AnchorModuleScript>DeleteAzureAnchor.
Подключение сцены к ресурсу Azure
В области иерархии выберите объект ParentAnchor.
На панели инспектора найдите компонент диспетчера пространственных привязок (скрипт).
Настройте раздел Учетные данные с использованием учетных данных из учетной записи пространственных привязок Azure, созданной в рамках предварительных требований для этой серии учебников.
- В поле Идентификатор учетной записи Пространственных привязок вставьте значение Идентификатор учетной записи вашей учетной записи Пространственных привязок Azure.
- В поле Ключ учетной записи Пространственных привязок вставьте значение первичного или дополнительногоключа доступа из учетной записи Пространственных привязок Azure.
- В поле Домен учетной записи Пространственных привязок вставьте значение Домен учетной записи вашей учетной записи Пространственных привязок Azure.
Тестирование базового поведения пространственных привязок Azure
Пространственные привязки Azure не могут выполняться в Unity, поэтому, чтобы проверить их функциональность, необходимо собрать и развернуть проект на вашем устройстве.
Совет
Напоминание о том, как создать и развернуть проект Unity в HoloLens 2, см . в статье "Создание приложения в HoloLens 2 " начиная с сборки и развертывания раздела приложения .
Запустив приложение на устройстве, выполните инструкции, отображаемые на панели с инструкциями из руководства по Пространственным привязкам Azure.
- Переместите куб в другое расположение.
- Запустите сеанс Azure.
- Создайте привязку Azure в расположении куба.
- Завершите сеанс Azure.
- Удалите локальную привязку, чтобы разрешить пользователю перемещать куб.
- Переместите куб в другое расположение.
- Запустите сеанс Azure.
- Найдите привязку Azure, чтобы разместить куб в расположении из шага 3.
- Удалите привязку Azure.
- Завершите сеанс Azure.
Внимание
Пространственные привязки Azure используют Интернет для сохранения и загрузки данных привязки. Убедитесь, что устройство подключено к Интернету.