5. Интеграция Пространственных привязок Azure в общий интерфейс5. Integrating Azure Spatial Anchors into a shared experience

Из этого учебника вы узнаете, как интегрировать Пространственные привязки Azure в общий интерфейс.In this tutorial, you will learn how to integrate Azure Spatial Anchors (ASA) into the shared experience. Пространственные привязки Azure позволяют нескольким устройствам в физическом мире использовать общие ориентиры, чтобы пользователи видели друг друга в их реальном физическом расположении и использовали общий интерфейс в одном расположении.ASA allows multiple devices to have a common reference to the physical world so that the users see each other in their actual physical location and see the shared experience in the same place.

ЗадачиObjectives

  • Интеграция Пространственных привязок Azure в общий интерфейс для согласования среды между устройствами.Integrate ASA into a shared experience for multi-device alignment
  • Изучение основных принципов Пространственных привязок Azure в контексте локального общего интерфейса.Learn the fundamentals of how ASA works in the context of a local shared experience

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

В окне "Иерархия" разверните объект SharedPlayground, затем разверните объект TableAnchor, чтобы предоставить его дочерние объекты.In the Hierarchy window, expand the SharedPlayground object, then expand the TableAnchor object to expose its child objects:

Unity с развернутыми объектами SharedPlayground и TableAnchor

В окне Project (Проект) перейдите к папке Assets (Активы) > MRTK.Tutorials.MultiUserCapabilities > Prefabs (Заготовки) и перетащите заготовку Buttons (Кнопки) на дочерний объект TableAnchor, чтобы добавить ее в сцену в качестве дочернего объекта TableAnchor.In the Project window, navigate to the Assets > MRTK.Tutorials.MultiUserCapabilities > Prefabs folder and drag the Buttons prefab onto the TableAnchor child object to add it to your scene as a child of the TableAnchor object:

Unity с выбранной созданной заготовкой Buttons

Настройка кнопок для управления сценойConfiguring the buttons to operate the scene

В этом разделе показано, как настроить серию событий кнопок, демонстрирующих базовые приемы использования Пространственных привязок Azure для достижения пространственного выравнивания в общем взаимодействии.In this section, you will configure a series of button events demonstrating the fundamentals of how Azure Spatial Anchors can be used to achieve spatial alignment in a shared experience.

В окне "Иерархия" разверните объект Button. Выберите в нем первый дочерний объект кнопки с именем StartAzureSession:In the Hierarchy window, expand the Button object and select the first child button object named StartAzureSession:

Unity с выбранным объектом кнопки StartAzureSession

В окне "Инспектор" найдите компонент Interactable (Script) (Взаимодействие — скрипт) и настройте событие OnClick () (Щелчок), как описано ниже.In the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • В поле None (Object) (Отсутствует (объект)) укажите объект TableAnchor.To the None (Object) field, assign the TableAnchor object
  • В раскрывающемся списке No Function (Нет функции) выберите функцию AnchorModuleScript > StartAzureSession () .From the No Function dropdown, select the AnchorModuleScript > StartAzureSession () function

Unity с настроенным событием OnClick для кнопки StartAzureSession

В окне "Иерархия" выберите второй дочерний объект кнопки с именем CreateAzureAnchor. Затем в окне "Инспектор" найдите компонент Interactable (Script) (Взаимодействие — скрипт) и настройте событие OnClick () (Щелчок), как описано ниже.In the Hierarchy window, select the second child button object named CreateAzureAnchor, then in the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • В поле None (Object) (Отсутствует (объект)) укажите объект TableAnchor.To the None (Object) field, assign the TableAnchor object
  • В раскрывающемся списке No Function (Нет функции) выберите функцию AnchorModuleScript > CreateAzureAnchor () .From the No Function dropdown, select the AnchorModuleScript > CreateAzureAnchor () function
  • В появившемся поле None (Game Object) (Отсутствует (игровой объект)) укажите объект TableAnchor.To the new None (Game Object) field that appears, assign the TableAnchor object

Unity с настроенным событием OnClick для кнопки CreateAzureAnchor

В окне "Иерархия" выберите третий дочерний объект кнопки с именем ShareAzureAnchor. Затем в окне "Инспектор" найдите компонент Interactable (Script) (Взаимодействие — скрипт) и настройте событие OnClick () (Щелчок), как описано ниже.In the Hierarchy window, select the third child button object named ShareAzureAnchor, then in the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • В поле None (Object) (Отсутствует (объект)) укажите объект TableAnchor.To the None (Object) field, assign the TableAnchor object
  • В раскрывающемся списке No Function (Нет функции) выберите функцию SharingModuleScript > ShareAzureAnchor () .From the No Function dropdown, select the SharingModuleScript > ShareAzureAnchor () function

Unity с настроенным событием OnClick для кнопки ShareAzureAnchor

В окне Hierarchy (Иерархия) выберите четвертый дочерний объект кнопки с именем GetAzureAnchor. Затем в окне Inspector (Инспектор) найдите компонент Interactable (Script) (Взаимодействие — скрипт) и настройте событие OnClick () следующим образом:In the Hierarchy window, select the fourth child button object named GetAzureAnchor, then in the Inspector window, locate the Interactable (Script) component and configure the OnClick () event as follows:

  • В поле None (Object) (Отсутствует (объект)) укажите объект TableAnchor.To the None (Object) field, assign the TableAnchor object
  • В раскрывающемся списке No Function (Нет функции) выберите функцию SharingModuleScript > GetAzureAnchor () .From the No Function dropdown, select the SharingModuleScript > GetAzureAnchor () function

Unity с настроенным событием OnClick для кнопки GetAzureAnchor

Подключение сцены к ресурсу AzureConnecting the scene to the Azure resource

В окне "Иерархия" разверните объект SharedPlayground и выберите объект TableAnchor.In the Hierarchy window, expand the SharedPlayground object and select the TableAnchor object.

В окне Inspector (Инспектор) найдите компонент Spatial Anchor Manager (Script) (Диспетчер пространственных привязок — скрипт) и укажите в разделе Credentials (Учетные данные) данные учетной записи Пространственных привязок Azure, созданной при работе с разделом предварительных требований для этой серии руководств.In the Inspector window, locate the Spatial Anchor Manager (Script) component and configure the Credentials section with the credentials from the Azure Spatial Anchors account created as part of the Prerequisites for this tutorial series:

  • В поле Spatial Anchors Account ID (Идентификатор учетной записи пространственных привязок) вставьте идентификатор учетной записи Пространственных привязок Azure.In the Spatial Anchors Account ID field, paste the Account ID from your Azure Spatial Anchors account
  • В поле Spatial Anchors Account Key (Ключ учетной записи пространственных привязок) вставьте первичный или вторичный ключ доступа учетной записи Пространственных привязок Azure.In the Spatial Anchors Account Key field, paste the primary or secondary Access Key from your Azure Spatial Anchors account

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

Совет

Вы можете задать идентификатор и ключ учетной записи Пространственных привязок не только для сцены, но и для всего проекта, если у вас есть несколько сцен с Пространственными привязками Azure.Instead of setting the Spatial Anchors Account ID and Key in the scene, you can set it for your entire project, this can be advantageous if you have multiple scenes using ASA. Для этого в окне Project (Проект) выберите Assets (Активы) > AzureSpatialAnchors.SDK > Resources (Ресурсы) > актив SpatialAnchorConfig, а затем задайте значения в окне Inspector (Инспектор).To do this, in the Project window, navigate to the Assets > AzureSpatialAnchors.SDK > Resources > SpatialAnchorConfig asset, then set the values in the Inspector window.

В окне Hierarchy (Иерархия) выберите объект TableAnchor. Затем в окне Inspector (Инспектор) найдите компонент Anchor Module (Script) (Модуль привязок — скрипт) и настройте его следующим образом:In the Hierarchy window, select the TableAnchor object, then in the Inspector window, locate the Anchor Module (Script) component and configure it as follows:

  • В поле Public Sharing Pin (ПИН-код общего доступа) измените несколько цифр, чтобы код стал уникальным для вашего проекта.In the Public Sharing Pin field, change a few digits, so the pin becomes unique to your project

Unity с настроенным скриптом модуля привязок

С выделенным объектом TableAnchor убедитесь, что в окне Inspector (Инспектор) включены все компоненты скрипта:With the TableAnchor object still selected, in the Inspector window, make sure all the script components are enabled:

  • Установите флажок рядом с компонентами Spatial Anchor Manager (Script) (Диспетчер пространственных привязок — скрипт), чтобы включить их.Check the checkbox next to the Spatial Anchor Manager (Script) components to enable it
  • Установите флажок рядом с компонентами Anchor Module Script (Script) (Скрипт модуля привязок — скрипт), чтобы включить их.Check the checkbox next to the Anchor Module Script (Script) components to enable it
  • Установите флажок рядом с компонентами Sharing Module Script (Script) (Скрипт модуля общего доступа — скрипт), чтобы включить их.Check the checkbox next to the Sharing Module Script (Script) components to enable it

Unity со всеми включенными компонентами скрипта TableAnchor

Использование возможности пространственного выравниванияTrying the experience with spatial alignment

Примечание

Пространственные привязки Azure не могут работать в Unity.Azure Spatial Anchors can not run in Unity. Поэтому для проверки функциональных возможностей этой службы вам нужно будет развернуть проект как минимум на двух устройствах.Consequently, to test the Azure Spatial Anchors functionality, you need to deploy the project to a minimum of two devices.

После создания и развертывания проекта Unity на двух устройствах вы сможете реализовать пространственное выравнивание между ними, используя общий идентификатор привязки Azure.If you now build and deploy the Unity project to two devices, you can achieve spatial alignment between the devices by sharing the Azure Anchor ID. Чтобы проверить этот механизм, можно выполнить следующие действия.To test it out, you can follow these steps:

  1. На устройстве 1: запустите приложение (Rover Explorer создается и размещается в таблице).On device 1: Start the app (the Rover Explorer is instantiated and placed on the table)
  2. На устройстве 2: запустите приложение (оба пользователя видят таблицу с Rover Explorer, но таблица не отображается в одном расположении, а аватары пользователей не отображаются там, где находятся пользователи).On device 2: Start the app (both users see the table with the Rover Explorer, but the table does not appear in the same place, and the user avatars do not appear where the users are)
  3. На устройстве 1: нажмите кнопку Start Azure Session (Запуск сеанса Azure).On device 1: Press the Start Azure Session button
  4. На устройстве 1: нажмите кнопку Create Azure Anchor (Создать привязку Azure) (создается привязка в расположении объекта TableAnchor и сохраняются сведения о ней в ресурсе Azure).On device 1: Press the Create Azure Anchor button (creates anchor at the location of the TableAnchor object and stores the anchor information in the Azure resource).
  5. На устройстве 1: нажмите кнопку Share Azure Anchor (Поделиться привязкой Azure) (предоставляет другим пользователям доступ к идентификатору привязки в режиме реального времени).On device 1: Press the Share Azure Anchor button (shares the anchor ID with other users in real-time)
  6. На устройстве 2: нажмите кнопку Start Azure Session (Запуск сеанса Azure).On device 2: Press the Start Azure Session button
  7. На устройстве 2: нажмите кнопку Get Azure Anchor (Получить привязку Azure) (подключается к ресурсу Azure, чтобы получить сведения о привязке для общего идентификатора привязки, затем перемещает объект TableAnchor в расположение, где с помощью устройства 1 была создана привязка).On device 2: Press the Get Azure Anchor button (connects to the Azure resource to retrieve the anchor information for the shared anchor ID, then moves the TableAnchor object to the location where the anchor was created with the device 1)

Совет

Если у вас нет доступа к двум устройствам HoloLens, выполните инструкции из статьи Создание Пространственных привязок Azure для мобильных устройств, чтобы развернуть проект на мобильном устройстве.If you don't have access to two HoloLens devices, you may follow the Building Azure Spatial Anchors for mobile devices to deploy the project to your mobile device.

Поздравляем!Congratulations

Из этого учебника вы узнали, как интегрировать мощные возможности Пространственных привязок Azure для поддержки согласованного расположения устройств в общем интерфейсе.In this tutorial, you learned how to integrate Azure's powerful Spatial Anchors to align devices in a shared experience.

На этом мы завершаем работу с этой серией руководств, из которой вы узнали, как настроить учетную запись Photon, создать приложение PUN, интегрировать PUN в проект Unity, настроить аватары пользователей и общие объекты, а также как согласовать разных участников с помощью Пространственных привязок Azure.This also concludes this tutorial series where you learned how to set up a Photon account, create a PUN app, integrate PUN into the Unity project, configure user avatars and shared objects, and finally align multiple participants using Azure Spatial Anchors.