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> Library "]
space
space
DeviceB["Device B<br> Library "]
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.