Table of Contents

Prise en charge des casques EasyAR dans Unity

Ce document décrit l'architecture générale et les considérations relatives à la prise en charge des casques EasyAR dans Unity.

Avant de commencer

  • Lisez Prise en charge des casques EasyAR pour comprendre les types de casques pris en charge par EasyAR et les fonctionnalités EasyAR pouvant fonctionner sur un casque.

Aperçu de la prise en charge des casques

EasyAR prend en charge les casques dans Unity de manière flexible, généralement selon deux approches :

  • Prise en charge intégrée : généralement via une intégration directe du SDK de l'appareil dans la bibliothèque EasyAR Sense, avec des interfaces correspondantes dans Unity (par exemple Apple Vision Pro)
  • Prise en charge étendue : via un package d'extension Unity pour casques, connecté au SDK de l'appareil (par exemple Pico)
block
  columns 4
  block:groupApp:4
    block:groupAppWrapper
      space
      App1["EasyAR + Device A<br>Appli"]
      space
      App2["EasyAR<br>Appli"]
      space
      App3["EasyAR + Device B<br>Appli"]
    end
  end
  
  block:groupSensePluginExtension
    columns 1
    SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension pour Device A"]
    space
  end
  block:groupSensePlugin
    columns 1
    SensePlugin["EasyAR Sense Unity Plugin"]
    space
  end
  block:groupXRI
    columns 1
    XRI["XR Interaction Toolkit"]
    space
  end
  block:groupARF
    columns 1
    ARF["AR Foundation"]
    space
  end
  
  block:groupDeviceAUnity
    columns 1
    DeviceAUnity["Device A<br>Unity SDK"]
    space
  end
  block:groupSense
    columns 1
    Sense["EasyAR Sense"]
    block:groupSenseWrapper
      MDeviceB["Device B<br>CameraDevice"]
      Others["..."]
    end
  end
  block:groupXRSubsystem:2
    columns 1
    XRSubsystem["XR Subsystems"]
    XRSDK["Unity XR SDK"]
  end

  block:groupSystem:4
    columns 1
    System["Bibliothèque native"]
    block:groupSystemWrapper
      space
      DeviceA["Device A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bibliothèque&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      space
      DeviceB["Device B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bibliothèque&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
    end
  end
  
  SensePluginExtension --> App1
  SensePlugin --> App1
  SensePlugin --> App2
  SensePlugin --> App3
  ARF --> App3
  XRI --> App1
  XRI --> App3
  groupSense --> SensePlugin
  groupDeviceAUnity --> SensePluginExtension
  SensePlugin --> SensePluginExtension
  DeviceA --> groupDeviceAUnity
  DeviceA --> XRSDK
  XRSubsystem --> ARF
  XRSubsystem --> XRI
  DeviceB --> MDeviceB
  DeviceB --> XRSDK
  
  style groupApp fill:none,stroke:none,stroke-width:0px
  style groupAppWrapper fill:none,stroke:none,stroke-width:0px
  style groupSensePlugin fill:none,stroke:none,stroke-width:0px
  style groupARF fill:none,stroke:none,stroke-width:0px
  style groupXRI fill:none,stroke:none,stroke-width:0px
  style DeviceAUnity fill:none,stroke:none,stroke-width:0px,color:#fff
  style Sense fill:none,stroke:none,stroke-width:0px,color:#fff
  style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
  style XRSubsystem fill:none,stroke:none,stroke-width:0px,color
  style System fill:none,stroke:none,stroke-width:0px
  style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
  style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px  

  classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
  class groupSense EasyAR
  class SensePlugin EasyAR
  class SensePluginExtension EasyAR

  classDef Device fill:#636,stroke:#333,color:#fff
  class groupDeviceAUnity Device
  class DeviceB Device
  class DeviceA Device

Dans le schéma :

  • L'appareil A relève de la prise en charge étendue

    En pratique, l'appareil A dispose généralement d'un SDK Unity correspondant, utilisé pour s'interfacer avec le SDK Unity XR ou implémenter indépendamment les capacités de rendu du casque.

    Le package d'extension pour casques de l'appareil A est responsable de la connexion entre l'Unity Plugin EasyAR Sense et le SDK Unity de l'appareil A, permettant ainsi à EasyAR de fonctionner sur l'appareil A. Ce package de support peut être fourni par EasyAR ou par le fabricant de l'appareil.

  • L'appareil B relève de la prise en charge intégrée

    En pratique, l'appareil B peut ou non disposer d'un SDK Unity correspondant, selon l'implémentation du fabricant. Par exemple, Apple Vision Pro n'a pas de SDK Unity correspondant, tandis que XREAL en a un.

Les casques avec prise en charge intégrée ou étendue prennent en charge l'utilisation d'une caméra personnalisée.

Important

Lors de l'utilisation de produits d'évaluation (par exemple, licence personnelle, licence XR d'évaluation ou service Mega d'évaluation, etc.) sur des caméras ou casques personnalisés, EasyAR Sense cessera de répondre après 100 secondes à chaque démarrage (la durée peut être ajustée par EasyAR Business après approbation pour les utilisateurs Mega). L'utilisation d'EasyAR Sense dans sa version payante et du service Mega payant d'EasyAR n'est pas soumise à cette restriction.

Dans Unity, le rendu de la caméra virtuelle, la matrice de projection et la transformation ne sont pas contrôlés par EasyAR. Ils sont généralement gérés par le SDK de l'appareil ou le SDK Unity XR. Les fonctionnalités propres à l'appareil, comme la reconnaissance gestuelle ou le suivi oculaire, restent fournies par l'appareil et son SDK. Lors de l'utilisation, il est généralement nécessaire d'utiliser simultanément EasyAR et le SDK de l'appareil.

Étapes suivantes