Table of Contents

Comment utiliser les capacités EasyAR sur Apple Vision Pro

Ce guide vous accompagne dans la configuration des projets Unity et Xcode pour débloquer toutes les capacités principales d'EasyAR, y compris le positionnement cloud Mega, pour les applications Apple Vision Pro.

Avant de commencer

  • Apprenez à utiliser l'exemple de casque
  • Assurez-vous que l'environnement de développement répond aux exigences suivantes :
    • visionOS 2.0 ou supérieur
    • Xcode 16.0 ou supérieur correspondant à la version de visionOS, avec le simulateur visionOS installé
    • Version Unity LTS recommandée 6000.0.23 ou supérieure

Demander une licence API d'entreprise auprès d'Apple Inc.

L'accès au flux vidéo et aux paramètres de la caméra sur Apple Vision Pro nécessite une habilitation (entitlement) via une API d'entreprise. Vous devez demander un fichier de licence contenant cette habilitation auprès d'Apple Inc.. Consultez Building spatial experiences for business apps with enterprise APIs for visionOS pour le processus de demande et d'utilisation.

Important

Le Bundle ID spécifié dans l'habilitation obtenue d'Apple doit correspondre exactement à celui renseigné lors de la création de votre EasyAR Sense License Key.

Comment choisir le mode d'application visionOS

Les applications exécutées sur visionOS ne peuvent accéder aux données ARKit qu'en mode Immersive Space. Les applications générées par l'éditeur Unity en Immersive Space nécessitent le choix entre RealityKit with PolySpatial ou Metal Rendering with Compositor Services en fonction de leur flux de rendu et des API utilisées.

Pour la définition d'Immersive Space, référez-vous à la documentation officielle d'Apple.

Pour une présentation détaillée des modes d'application Unity, consultez visionOS Platform Overview dans la documentation PolySpatial de Unity.

Astuce

Recommandations pour le choix du mode d'application

  • Premier choix recommandé : RealityKit with PolySpatial

    Si vous débutez sur visionOS, privilégiez ce mode. Ses avantages : intégration profonde avec les fonctionnalités de rendu système de visionOS, grande stabilité et qualité de rendu optimale. Ce mode ne supporte pas les shaders personnalisés (HLSL/ShaderLab) ; vous devez utiliser Shader Graph, et seules les fonctionnalités compatibles avec PolySpatial (converties en MaterialX) sont prises en charge.

    Les shaders Unity intégrés Standard (Built-in) et Lit (URP) sont préadaptés par Unity et utilisables directement.

  • Avancé/Besoin spécifique : Metal Rendering with Compositor Services

    Adapté aux projets complexes nécessitant la migration d'un grand volume d'actifs 3D existants ou l'utilisation de shaders personnalisés. Dans ce mode, Unity gère entièrement le rendu, contournant le pipeline RealityKit du système, ce qui peut entraîner une qualité de rendu inférieure et des problèmes imprévisibles.

Recommandation pour l'intégration d'EasyAR :

Lors de l'intégration d'EasyAR, commencez toujours par utiliser le mode RealityKit with PolySpatial pour valider le flux de base. Cela isole les variables et évite que les problèmes d'adaptation bas niveau Metal ne se mêlent aux problèmes AR, compliquant le diagnostic.

Configuration dans le projet Unity

Les configurations suivantes sont nécessaires dans le projet Unity :

Importer les packages nécessaires dans le projet Unity

Unity 6 (recommandé) :

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

Toutes les versions des packages doivent être strictement identiques.

Privilégiez Unity 6, certaines versions antérieures d'Unity 2023.x ne prennent pas encore en charge visionOS.

Unity 2022.3 :

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

Toutes les versions des packages doivent être strictement identiques.

Les versions 1.3.x ne sont pas prises en charge, utilisez obligatoirement la version 1.2.3.

Choisir la plateforme de build

Cliquez sur File > Build Profiles dans la barre de menus et sélectionnez visionOS comme plateforme.

切换Build_Platform

Configurer le système d'entrée

Assurez-vous d'utiliser la nouvelle version du Input System Package :

Cliquez sur Edit > Project Settings > Player, et définissez Active Input Handling sur Input System Package(New).

Unity peut demander un redémarrage du projet. Cliquez sur Apply pour valider les modifications.

InputSystem改动生效

Configurer XR Plug-in Management

Cliquez sur Edit > Project Settings > XR Plug-in Management. Sous l'onglet visionOS, cochez Apple visionOS dans Plug-in Providers.

选择visionOS插件

Configurer le plug-in Apple visionOS

Cliquez sur Edit > Project Settings > XR Plug-in Management > Apple visionOS.

Sélectionnez le App Mode approprié selon les explications précédentes.

选择AppMode

Note

Le mode Windowed ne s'exécute pas dans un Immersive Space et ne peut donc pas utiliser les capacités AR.

Le mode Hybrid nécessite une commutation manuelle entre Metal et RealityKit. Son utilisation complexe le déconseille. Consultez l'explication officielle Unity.

Modifiez ensuite les paramètres suivants dans la même page :

  • Ajoutez une description dans World Sensing Usage Description.
  • Définissez Metal Immersion Style sur Mixed.
  • Définissez Reality Kit Immersion Style sur Mixed.
  • Cochez IL2CPP Large Exe Workaround.

修改visionOS插件配置

[Uniquement pour le mode RealityKit] Importer TextMesh Pro Essentials

Cliquez sur Edit > Project Settings > TextMesh Pro > cliquez sur Import TMP Essentials

Import TMP Essentials

Note

Actuellement, le mode RealityKit with PolySpatial ne prend en charge que le texte TextMesh Pro. Sans cette importation, le texte ne sera pas rendu.

[Uniquement pour le mode RealityKit] Paramètres liés à PolySpatial

Cliquez sur Edit > Project Settings > PolySpatial, puis modifiez les éléments suivants :

  • Définissez Default Volume Camera Window Config sur Default Unbounded Configuration.
  • Cochez Auto-Create Volume Camera

设置 PolySpatial

Si vous devez spécifier une autre Default Volume Camera Window Config, assurez-vous que son Mode est Unbounded.

确认 Mode 是 Unbounded

Supprimez tout Volume Camera présent dans la scène.

删除场景中的 Volume Camera

Avertissement
  • Les Volume Camera dont la World Transform n'est pas identity ne sont pas pris en charge.
  • Si, pour une raison particulière, vous devez ajouter une Volume Camera personnalisée unique dans la scène, assurez-vous de :
    • Définir sa World Transform sur identity.
    • Vérifier que le Mode de sa Volume Camera Window Configuration est Unbounded.
    • Comprendre parfaitement son fonctionnement et son usage via la documentation officielle Unity.

[Lors de l'utilisation de Mega] Ajouter une description d'utilisation de la localisation

Attention

Si vous activez l'autorisation Location dans la configuration EasyAR (pour utiliser Mega), vous devez ajouter une description, sinon le build échouera.

Actuellement, le champ Location Usage Description n'apparaît pas sous Project Settings > Player > visionOS. Procédez comme suit :

  1. Changer d'onglet plateforme : Passez temporairement à l'onglet iOS.
  2. Renseigner la description : Saisissez l'explication d'utilisation dans Location Usage Description.
  3. Revenir à visionOS : Revenez à l'onglet visionOS, la configuration sera conservée et appliquée.

Location Description

Configuration dans le projet Xcode

Les configurations suivantes sont nécessaires dans le projet Xcode généré par Unity :

Configurer l'habilitation pour les données caméra

  • Copiez le fichier Enterprise.license obtenu dans le dossier du projet Xcode.

    Copy to Xcode project folder

  • Glissez-déposez Enterprise.license du dossier du projet dans le projet Xcode.

    Move into Xcode project

Modifier info.plist pour autoriser l'enregistrement et le partage de fichiers

Pour enregistrer des fichiers EIF dans l'application et les partager via l'application Fichiers de visionOS vers un ordinateur ou un autre appareil, ajoutez/modifiez ces champs dans Info.plist :

  • Ajoutez LSSupportsOpeningDocumentsInPlace et définissez sa valeur sur true.
  • Ajoutez UIFileSharingEnabled et définissez sa valeur sur true.

Modify Info.plist

Astuce

Après ajout, la Key affichée dans Xcode peut différer de la chaîne saisie (par exemple, LSSupportsOpeningDocumentsInPlace affiché comme Supports opening documents in place). C'est normal.