3. Guardar, recuperar y compartir Azure Spatial Anchors3. Saving, retrieving, and sharing Azure Spatial Anchors

En este tutorial, aprenderás cómo guardar Azure Spatial Anchors en varias sesiones de la aplicación guardando el identificador de anclaje en el almacenamiento de HoloLens 2.In this tutorial, you will learn how to save Azure Spatial Anchors across multiple app sessions by saving the anchor ID to the HoloLens 2's storage. También aprenderás a compartir este identificador de anclaje con otros dispositivos para una alineación de anclaje de varios dispositivos.You will also learn how to share this anchor ID to other devices for a multi-device anchor alignment.

ObjetivosObjectives

  • Aprender a lograr la alineación espacial entre varias sesiones de una aplicación.Learn how to achieve spatial alignment across multiple app sessions.
  • Aprender a lograr la alineación espacial entre varios dispositivos.Learn how to achieve spatial alignment between multiple devices.

Preparación de la escenaPreparing the scene

En la ventana Hierarchy (Jerarquía), expanda el objeto ButtonParent.In the Hierarchy window, expand the ButtonParent object. Seleccione los cuatro últimos objetos de botones secundarios.Select the last four child button objects. En la ventana Inspector, active la casilla situada junto al campo de nombre para activar todos los objetos activos.In the Inspector window, check the checkbox next to the name field to make all the objects active.

Unity con objetos de botón anteriormente inactivos seleccionados y activos

En la ventana Hierarchy (Jerarquía), expanda los objetos ButtonParent.In the Hierarchy window, select the ButtonParent objects. A continuación, en la ventana Inspector, busque el componente GridObjectCollection y haga clic en el botón Update Collection (Actualizar colección) para actualizar la posición de todos los objetos secundarios del objeto ButtonParent.Then in the Inspector window, locate the GridObjectCollection component and click the Update Collection button to update the position of all the ButtonParent object's child objects.

Unity con el componente GridObjectCollection actualizado

Persistencia de Azure Spatial Anchors entre sesiones de la aplicaciónPersisting Azure Spatial Anchors between app sessions

En esta sección, aprenderá a guardar y recuperar el identificador de anclaje de Azure desde y hasta el disco local de HoloLens.In this section, you will learn how to save and retrieve the Azure Anchor ID to and from the HoloLens' local disk. De este modo, podrá consultar Azure para el mismo identificador de anclaje entre distintas sesiones de la aplicación.This will allow you to query Azure for the same anchor ID between different app sessions. Se habilitarán los hologramas anclados para que se puedan colocar en la misma ubicación que en la sesión de aplicación anterior.It will enable the anchored holograms to be positioned at the same location as in the previous app session.

En la ventana Hierarchy (Jerarquía), expanda el objeto ButtonParent y busque los dos botones denominados SaveAzureAnchorIdToDisk y GetAzureAnchorIdFromDisk:In the Hierarchy window, expand the ButtonParent object and locate the two buttons named SaveAzureAnchorIdToDisk and GetAzureAnchorIdFromDisk:

Unity con los objetos de botón SaveAzureAnchorIdToDisk y GetAzureAnchorIdFromDisk seleccionados

Siga los mismos pasos de las instrucciones proporcionadas en Configuración de los botones para el funcionamiento de la escena del tutorial anterior para configurar el componente Interactable (Script) (Interactuable [script]) en cada uno de los dos botones:Follow the same steps as in the configuring the buttons to operate the scene instructions from the previous tutorial to configure the Interactable (Script) component on each of the two buttons:

  • Para el objeto del botón SaveAzureAnchorIdToDisk, asigne la función AnchorModuleScript > SaveAzureAnchorIdToDisk () .For the SaveAzureAnchorIdToDisk button object, assign the AnchorModuleScript > SaveAzureAnchorIdToDisk () function.
  • Para el objeto del botón GetAzureAnchorIdFromDisk, asigne la función AnchorModuleScript > GetAzureAnchorIdFromDisk () .For the GetAzureAnchorIdFromDisk button object, assign the AnchorModuleScript > GetAzureAnchorIdFromDisk () function.

Si compila la aplicación actualizada en HoloLens, puede conservar Azure Spatial Anchors entre sesiones de aplicación si guarda el identificador del anclaje de Azure.If you build the updated app to your HoloLens, you can now persist Azure Spatial Anchors between app sessions by saving the Azure Anchor ID. Para probarlo, puedes seguir estos pasos:To test it out, you can follow these steps:

  1. Mueva el explorador del róver a la ubicación deseada.Move the Rover Explorer to the desired location
  2. Inicie una sesión de Azure.Start Azure Session
  3. Crea un anclaje de Azure (se crean anclajes en la ubicación del explorador de róver).Create Azure Anchor (creates anchors at the location of the Rover Explorer)
  4. Guarde el identificador del anclaje de Azure en el disco.Save Azure Anchor ID to Disk
  5. Reinicie el equipo.Restart the app
  6. Obtenga el anclaje de Azure del disco (se carga el identificador de anclaje que acaba de guardar).Get Azure Anchor from Disk (loads the anchor ID you just saved)
  7. Inicia una sesión de Azure.Start Azure Session
  8. Busque el anclaje de Azure (coloca el explorador del róver en la ubicación del paso 3).Find Azure Anchor (positions the Rover Explorer at the location from step 3)

Nota

Para reiniciar completamente la aplicación, después de salir de la vista de aplicación inmersiva, la ventana de la aplicación en el ambiente principal debe cerrarse antes de volver a iniciar la aplicación desde el menú Inicio.To fully restart the app, after exiting the immersive app view, the app window in the mixed reality home needs to be closed before relaunching it from the Start menu. Para obtener más información, puedes consultar la documentación de Usar aplicaciones en HoloLens.For additional details, you can refer to the Using apps on HoloLens documentation.

Uso compartido de Azure Spatial Anchors entre sesiones de la aplicaciónSharing Azure Spatial Anchors between devices

En esta sección, obtendrás información sobre cómo compartir el identificador del anclaje de Azure entre varios dispositivos.In this section, you will learn how to share the Azure Anchor ID between multiple devices. Esto permitirá que varios dispositivos consulten Azure para el mismo identificador de anclaje, lo que permite alinear espacialmente los hologramas delimitados.This will allow multiple devices to query Azure for the same anchor ID, allowing the anchored holograms to be spatially aligned. La alineación espacial, que permite ver los mismos hologramas en la misma ubicación física entre varios dispositivos, es fundamental para las experiencias compartidas locales en HoloLens 2.Spatial alignment, i.e., seeing the same holograms in the same physical location between multiple devices, is key to local shared experiences in the HoloLens 2.

Hay muchas formas de transferir identificadores de anclaje de Azure entre dispositivos, incluidos los métodos descritos en la serie Tutoriales de funcionalidades de varios usuarios.There are many ways to transfer Azure Anchor IDs between devices, including methods outlined in the Multi-user capabilities tutorials series. En este ejemplo, usarás un servicio web simple para cargar y descargar los id. de anclaje entre dispositivos.In this example, you will use a simple web service to upload and download anchor IDs between devices.

En la ventana Hierarchy (Jerarquía), expanda el objeto ButtonParent.In the Hierarchy window, expand the ButtonParent object. Busque los dos botones denominados ShareAzureAnchorIdToNetwork y GetAzureAnchorIdFromNetwork:Locate the two buttons named ShareAzureAnchorIdToNetwork and GetAzureAnchorIdFromNetwork:

Unity con los objetos de botón ShareAzureAnchorIdToNetwork y GetAzureAnchorIdFromNetwork seleccionados

Siga los mismos pasos de las instrucciones proporcionadas en Configuración de los botones para el funcionamiento de la escena del tutorial anterior para configurar el componente Interactable (Script) (Interactuable [script]) en cada uno de los dos botones:Follow the same steps as in the configuring the buttons to operate the scene instructions from the previous tutorial to configure the Interactable (Script) component on each of the two buttons:

  • Para el objeto ShareAzureAnchorIdToNetwork, asigna la función AnchorModuleScript > ShareAzureAnchorIdToNetwork () .For the ShareAzureAnchorIdToNetwork object, assign the AnchorModuleScript > ShareAzureAnchorIdToNetwork () function.
  • Para el objeto GetAzureAnchorIdFromNetwork, asigna la función AnchorModuleScript > GetAzureAnchorIdFromNetwork () .For the GetAzureAnchorIdFromNetwork object, assign the AnchorModuleScript > GetAzureAnchorIdFromNetwork () function.

Si compilas la aplicación actualizada en dos dispositivos HoloLens, ahora puede lograr la alineación espacial al compartir el identificador de anclaje de Azure.If you build the updated app to two HoloLens devices, you can now achieve spatial alignment by sharing the Azure Anchor ID. Para probarlo, puedes seguir estos pasos:To test it out, you can follow these steps:

  1. En el dispositivo HoloLens 1: Mueva el explorador del róver a la ubicación deseada.On HoloLens device 1: Move the Rover Explorer to the desired location.
  2. En el dispositivo HoloLens 1: inicia una sesión de Azure.On HoloLens device 1: Start Azure Session.
  3. En el dispositivo HoloLens 1: Cree un anclaje de Azure (se crean anclajes en la ubicación del explorador de róver).On HoloLens device 1: Create Azure Anchor (creates anchors at the location of the Rover Explorer).
  4. En el dispositivo HoloLens 1: comparte el id. de anclaje de Azure con la redOn HoloLens device 1: Share Azure Anchor ID to Network.
  5. En el dispositivo HoloLens 2: Inicie la aplicación.On HoloLens device 2: Start the app.
  6. En el dispositivo HoloLens 2: obtén el identificador de anclaje compartido de la red (captura el identificador de anclaje que se acaba de compartir desde el dispositivo HoloLens 1).On HoloLens device 2: Get Shared Anchor ID from Network (fetches the anchor ID just shared from HoloLens device 1).
  7. En el dispositivo HoloLens 2: inicia una sesión de Azure.On HoloLens device 2: Start Azure Session.
  8. En el dispositivo HoloLens 2: Busque el anclaje de Azure (se coloca el explorador del róver en la ubicación del paso 3).On HoloLens device 2: Find Azure Anchor (positions the Rover Explorer at the location from step 3).

Sugerencia

Si solo tiene un dispositivo HoloLens, puede probar la funcionalidad igualmente reiniciando la aplicación, en lugar de usar un segundo dispositivo HoloLens.If you only have one HoloLens, you can still test the functionality by restarting the app instead of using a second HoloLens device.

EnhorabuenaCongratulations

En este tutorial ha aprendido a conservar Azure Spatial Anchors entre las sesiones y reinicios de aplicación al guardar el identificador de anclaje espacial de Azure en el disco local de HoloLens.In this tutorial, you learned how to persist Azure Spatial Anchors between app sessions and app restarts by saving the Azure Spatial Anchor ID to the local disk on HoloLens. También has aprendido a compartir Azure Spatial Anchors entre varios dispositivos para una experiencia de uso compartido con hologramas estáticos y varios usuarios.You also learned how to share Azure Spatial Anchors between multiple devices for a basic multi-user, static hologram shared experience.

En el siguiente tutorial, aprenderá a proporcionar a los usuarios comentarios en tiempo real.In the next tutorial, you will learn how to provide users with real-time feedback. Estos comentarios incluirán información sobre la creación de los anclajes, la calidad de la comprensión del entorno y el estado de la sesión de Azure.This feedback will include information about Anchor creation, the quality of environment understanding, and the Azure session's state. Sin comentarios, es posible que los usuarios no sepan si un anclaje se ha cargado correctamente en Azure, si la calidad del entorno es suficiente para la creación del anclaje o el estado actual.Without feedback, users may not know whether an anchor has successfully been uploaded to Azure, whether the quality of the environment is sufficient for anchor creation, or the current state.