Table of Contents

Cómo usar las capacidades de EasyAR en Apple Vision Pro

Esta guia le acompana en la configuracion de proyectos Unity y Xcode para desbloquear todas las capacidades principales de EasyAR en aplicaciones Apple Vision Pro, incluida la localizacion en la nube Mega.

Antes de empezar

  • Aprenda como usar los ejemplos de headset
  • Asegurese de que el entorno de desarrollo cumpla estos requisitos:
    • visionOS 2.0 o superior
    • Xcode 16.0 o superior correspondiente a la version de visionOS, con visionOS simulator instalado
    • Version recomendada de Unity: version LTS superior a 6000.0.23

Solicitar a Apple Inc. permiso para API empresariales

Como obtener imagenes de camara y parametros en Apple Vision Pro es una API empresarial que requiere entitlement, debe solicitar a Apple Inc. un archivo license que contenga ese entitlement. Para solicitar y usar esta license, consulte Building spatial experiences for business apps with enterprise APIs for visionOS.

Importante

El Bundle ID del entitlement obtenido de Apple Inc. debe coincidir exactamente con el rellenado al crear la EasyAR Sense License Key.

Como elegir visionOS App Mode

Las apps que se ejecutan en visionOS solo pueden obtener datos de ARKit bajo Immersive Space. Para apps empaquetadas desde el editor Unity, bajo Immersive Space debe elegirse RealityKit with PolySpatial o Metal Rendering with Compositor Services segun el flujo de renderizado y las API.

Para la definicion de Immersive Space, consulte la documentacion oficial de Apple.

Para una introduccion detallada de Unity App Mode, consulte visionOS Platform Overview en la documentacion de Unity PolySpatial.

Consejo

Recomendacion para elegir App Mode

  • Primera recomendacion: RealityKit with PolySpatial

    Si es la primera vez que trabaja con visionOS, se recomienda elegir primero este modo. Su ventaja es que se integra profundamente con las caracteristicas de renderizado del sistema de visionOS, con alta estabilidad y buen efecto de renderizado. Este modo no admite shaders de codigo personalizado (HLSL/ShaderLab); debe usarse Shader Graph, y solo admite caracteristicas que pasen la comprobacion de compatibilidad de PolySpatial (se convertiran a MaterialX).

    Los shaders integrados de Unity Standard (Built-in) y Lit (URP) ya estan adaptados oficialmente y pueden usarse directamente.

  • Avanzado/necesidades especificas: Metal Rendering with Compositor Services

    Adecuado para proyectos complejos con muchos assets 3D existentes que migrar o que deban usar shaders personalizados. En este modo Unity es responsable de toda la logica de renderizado y evita la canalizacion RealityKit del sistema, por lo que el efecto de renderizado suele ser inferior a RealityKit y pueden aparecer problemas de renderizado imprevisibles.

Recomendacion de integracion con EasyAR:

Al intentar integrar EasyAR, asegurese de ejecutar primero el flujo basico con el modo RealityKit with PolySpatial. Esto permite aislar variables de forma eficaz y evitar que los problemas de adaptacion de bajo nivel de Metal se mezclen con problemas relacionados con AR, lo que dificultaria localizar la causa del fallo.

Configuracion en el proyecto Unity

Debe realizar las siguientes configuraciones en el proyecto Unity:

Importar los Package necesarios para el proyecto Unity

Unity 6 (recomendado):

  • com.unity.xr.visionos (2.0.4+)
  • com.unity.polyspatial (2.0.4+)
  • com.unity.polyspatial.visionos (2.0.4+)
Importante

Los numeros de version de todos los Package deben mantenerse estrictamente iguales.

Se recomienda usar Unity 6 primero. Algunas versiones tempranas de Unity 2023.x aun no admiten visionOS.

Unity 2022.3:

  • com.unity.xr.visionos (1.2.3)
  • com.unity.polyspatial (1.2.3)
  • com.unity.polyspatial.visionos (1.2.3)
Importante

Los numeros de version de todos los Package deben mantenerse estrictamente iguales.

La version 1.3.x no esta admitida; asegurese de bloquear en 1.2.3.

Seleccionar Build Platform

Haga clic en File > Build Profiles en la barra de menus y cambie Platform a visionOS.

切换Build_Platform

Configurar Input System

Asegurese de usar el nuevo Input System Package:

Haga clic en Edit > Project Settings > Player en la barra de menus y establezca el campo Active Input Handling en Input System Package(New).

Despues de esto, Unity puede pedir reiniciar el proyecto. Haga clic en Apply para que los cambios surtan efecto.

InputSystem改动生效

Configurar XR Plug-in Management

Haga clic en Edit > Project Settings > XR Plug-in Management en la barra de menus, y en la pestana visionOS marque Apple visionOS en Plug-in Providers.

选择visionOS插件

Configurar el plugin Apple visionOS

Haga clic en Edit > Project Settings > XR Plug-in Management > Apple visionOS en la barra de menus.

Elija el App Mode adecuado segun la introduccion anterior.

选择AppMode

Nota

El modo Windowed no puede usar capacidades AR porque no se ejecuta en Immersive Space.

El modo Hybrid significa que el desarrollador debe cambiar manualmente entre los modos Metal y RealityKit. Como su uso es relativamente complejo, no se recomienda. Para detalles, consulte la explicacion oficial de Unity sobre este modo.

A continuacion, en la misma pagina realice las siguientes modificaciones:

  • Agregue una descripcion en el campo World Sensing Usage Description.

  • Establezca Metal Immersion Style en Mixed.

  • Establezca Reality Kit Immersion Style en Mixed.

  • Marque IL2CPP Large Exe Workaround.

修改visionOS插件配置

[Solo modo RealityKit] Importar TextMesh Pro Essentials

Haga clic en Edit > Project Settings > TextMesh Pro > Import TMP Essentials en la barra de menus.

Import TMP Essentials

Nota

Actualmente el modo RealityKit with PolySpatial solo admite texto TextMesh Pro. Si no se importa, el texto no se podra renderizar.

[Solo modo RealityKit] Configuracion relacionada con PolySpatial

Haga clic en Edit > Project Settings > PolySpatial en la barra de menus y realice las siguientes modificaciones en esta pagina:

  • Establezca Default Volume Camera Window Config en Default Unbounded Configuration.

  • Marque Auto-Create Volume Camera

设置 PolySpatial

Si necesita especificar otro Default Volume Camera Window Config, debe asegurarse de que su Mode sea Unbounded.

确认 Mode 是 Unbounded

Si existe Volume Camera en la escena, eliminela.

删除场景中的 Volume Camera

Advertencia
  • No se admite un Volume Camera cuyo valor de World Transform no sea identity.
  • Si por motivos especiales necesita agregar a la escena un Volume Camera personalizado y unico, asegurese de:
    • Establecer su World Transform en identity.
    • Asegurarse de que el Mode de su Volume Camera Window Configuration sea Unbounded.
    • Usarlo solo si comprende completamente su significado y uso en la documentacion oficial de Unity.

[Al usar Mega] Agregar Location Usage Description

Precaución

Si habilita el permiso Location en la configuracion de EasyAR (al usar la funcion Mega), debe agregar una descripcion de permiso; de lo contrario, el Build fallara.

Como actualmente el campo Location Usage Description no se muestra en la pestana Project Settings > Player > visionOS de Unity, configurelo siguiendo estos pasos:

  1. Cambiar temporalmente la pestana de plataforma: cambie la pestana a iOS.
  2. Rellenar la descripcion: rellene el campo Location Usage Description con una descripcion necesaria del uso del permiso.
  3. Volver a visionOS: cambie la pestana de vuelta a visionOS; la configuracion que acaba de rellenar se conservara y surtira efecto automaticamente.

Location Description

Configuracion en el proyecto Xcode

Debe realizar las siguientes configuraciones en el proyecto Xcode generado mediante el empaquetado de Unity:

Configurar el entitlement de datos de camara

  • Copie el archivo Enterprise.license obtenido por solicitud al directorio del proyecto Xcode.

    Copy to Xcode project folder

  • Arrastre Enterprise.license desde el directorio del proyecto Xcode al proyecto Xcode.

    Move into Xcode project

Modificar info.plist para que la aplicacion pueda guardar y entregar archivos

Si necesita grabar EIF en la aplicacion y entregarlo al ordenador u otros dispositivos mediante la app Archivos de visionOS, debe agregar y modificar los siguientes campos en Info.plist:

  • Agregue LSSupportsOpeningDocumentsInPlace y establezca su valor en true.

  • Agregue UIFileSharingEnabled y establezca su valor en true.

Modify Info.plist

Consejo

Despues de agregar los campos, el Key mostrado en la interfaz de Xcode sera distinto de la cadena agregada manualmente (por ejemplo, introdujo LSSupportsOpeningDocumentsInPlace pero se muestra Supports opening documents in place); esto es normal.