Table of Contents

Suporte para headsets easyar no unity

Este documento descreve a arquitetura geral e considerações para o suporte a headsets easyar no unity.

Antes de começar

  • Leia suporte para headsets easyar para entender os tipos de headsets suportados pelo easyar e os recursos do easyar que podem ser executados em headsets.

Visão geral do suporte para headsets

O easyar oferece suporte flexível a headsets no unity, com duas abordagens comuns:

  • Suporte integrado: geralmente envolve a integração direta com o sdk do dispositivo na biblioteca easyar sense, fornecendo interfaces correspondentes no unity (por exemplo, apple vision pro)
  • Suporte estendido: integração com o sdk do dispositivo através de pacotes de extensão para headsets no unity (por exemplo, pico)
block
  columns 4
  block:groupApp:4
    block:groupAppWrapper
      space
      App1["EasyAR + Device A<br>App"]
      space
      App2["EasyAR<br>App"]
      space
      App3["EasyAR + Device B<br>App"]
    end
  end
  
  block:groupSensePluginExtension
    columns 1
    SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for 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["Native Library"]
    block:groupSystemWrapper
      space
      DeviceA["Device A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Library&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;Library&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

No diagrama:

  • O dispositivo a utiliza suporte estendido

    Na prática, o dispositivo a geralmente possui um sdk unity correspondente para integração com o unity xr sdk ou implementação independente de recursos de renderização do headset.

    O pacote de extensão para headset do dispositivo a é responsável por conectar o easyar sense unity plugin ao sdk unity do dispositivo a, permitindo a execução do easyar no dispositivo a. Este pacote de suporte pode ser fornecido pelo easyar ou pelo fabricante do dispositivo.

  • O dispositivo b utiliza suporte integrado

    Na prática, o dispositivo b pode ou não ter um sdk unity correspondente, dependendo da implementação do fabricante. Por exemplo, o apple vision pro não possui sdk unity correspondente, enquanto o xreal possui.

Headsets com suporte integrado e estendido são compatíveis com o uso de câmera personalizada.

Importante

Ao usar produtos de avaliação (como licença pessoal, licença XR de avaliação ou serviço Mega de avaliação) em câmeras ou headsets personalizados, o EasyAR Sense parará de responder após 100 segundos (o tempo pode ser ajustado pelo EasyAR Business após aprovação para usuários Mega) após cada inicialização. Não há essa limitação ao usar a versão paga do EasyAR Sense e o serviço EasyAR Mega pago.

No unity, a renderização da câmera virtual, matriz de projeção e transform não são controladas pelo easyar. Geralmente são controladas pelo sdk do dispositivo ou pelo unity xr sdk. Funcionalidades nativas do dispositivo, como reconhecimento de gestos e rastreamento ocular, continuam sendo fornecidas pelo dispositivo e seu sdk. Durante o uso, geralmente é necessário utilizar simultaneamente o easyar e o sdk do dispositivo.

Próximos passos