Table of Contents

Поддержка headset EasyAR в Unity

Этот документ представляет общую архитектуру и примечания по поддержке headset EasyAR в Unity.

Перед началом

  • Прочитайте EasyAR headset support, чтобы узнать, какие типы headset уже поддерживаются EasyAR и какие функции EasyAR могут работать на headset.

Обзор поддержки headset

EasyAR поддерживает headset в Unity достаточно гибко. Обычно используются два подхода:

  • Built-in support: обычно напрямую подключает device SDK в EasyAR Sense library и предоставляет соответствующие interfaces в Unity, например Apple Vision Pro
  • Extension support: подключает device SDK через Unity headset extension package, например 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

На рисунке:

  • Device A относится к extension support

    На практике device A обычно имеет соответствующий Unity SDK для подключения к Unity XR SDK или самостоятельной реализации возможностей headset rendering.

    Headset extension package для device A отвечает за соединение EasyAR Sense Unity Plugin с Unity SDK device A, тем самым обеспечивая работу EasyAR на device A. Этот support package может предоставляться EasyAR или device vendor.

  • Device B относится к built-in support

    На практике device B может иметь или не иметь соответствующий Unity SDK, в зависимости от реализации device vendor. Например, Apple Vision Pro не имеет соответствующего Unity SDK, а XREAL имеет соответствующий Unity SDK.

Headsets с built-in support и extension support оба поддерживают использование custom camera.

Важно

При использовании пробных продуктов на пользовательской камере или гарнитуре (license Personal Edition, пробная XR license или пробная служба Mega и т. п.) EasyAR Sense перестает отвечать через 100 секунд после каждого запуска (пользователи Mega могут изменить длительность через EasyAR Business после утверждения). В платной версии EasyAR Sense и платной службе EasyAR Mega этого ограничения нет.

В Unity rendering virtual camera, projection matrix, transform и т. п. не контролируются EasyAR. Обычно они контролируются device SDK или Unity XR SDK. Собственные функции device, такие как gesture recognition и eye tracking, по-прежнему предоставляются device и device SDK. При использовании обычно нужно одновременно использовать EasyAR и device SDK.

Следующие шаги