Table of Contents

Поддержка гарнитур в unity с easyar

В этом документе описывается общая архитектура и важные аспекты поддержки гарнитур в Unity с EasyAR.

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

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

Обзор поддержки гарнитур

EasyAR поддерживает гарнитуры в Unity гибким способом, обычно двумя способами:

  • Встроенная поддержка: обычно прямое взаимодействие с SDK устройства в библиотеке EasyAR Sense с предоставлением соответствующих интерфейсов в Unity (например, Apple Vision Pro)
  • Расширенная поддержка: через пакет расширений гарнитур Unity для взаимодействия с SDK устройства (например, Pico)
block
  columns 4
  block:groupApp:4
    block:groupAppWrapper
      space
      App1["EasyAR + Устройство A<br>Приложение"]
      space
      App2["EasyAR<br>Приложение"]
      space
      App3["EasyAR + Устройство B<br>Приложение"]
    end
  end
  
  block:groupSensePluginExtension
    columns 1
    SensePluginExtension["EasyAR Sense Unity Plugin<br>Расширение для Устройства 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["Устройство A<br>Unity SDK"]
    space
  end
  block:groupSense
    columns 1
    Sense["EasyAR Sense"]
    block:groupSenseWrapper
      MDeviceB["Устройство B<br>CameraDevice"]
      Others["..."]
    end
  end
  block:groupXRSubsystem:2
    columns 1
    XRSubsystem["XR подсистемы"]
    XRSDK["Unity XR SDK"]
  end

  block:groupSystem:4
    columns 1
    System["Нативная библиотека"]
    block:groupSystemWrapper
      space
      DeviceA["Устройство A<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Библиотека&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"]
      space
      space
      DeviceB["Устройство B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Библиотека&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

На схеме:

  • Устройство A относится к расширенной поддержке

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

    Пакет расширений гарнитуры для устройства A отвечает за соединение EasyAR Sense Unity Plugin и Unity SDK устройства A, обеспечивая работу EasyAR на устройстве A. Этот пакет поддержки может предоставляться EasyAR или производителем устройства.

  • Устройство B относится к встроенной поддержке

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

Гарнитуры со встроенной и расширенной поддержкой работают с использованием пользовательской камеры.

Важно

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

В Unity рендеринг виртуальной камеры, матрица проекции и transform не контролируются EasyAR, они обычно управляются SDK устройства или Unity XR SDK. Собственные функции устройства, такие как распознавание жестов, отслеживание взгляда и т.д., по-прежнему предоставляются самим устройством и его SDK. При использовании обычно требуется одновременное применение EasyAR и SDK устройства.

Дальнейшие шаги