Table of Contents

Unity의 EasyAR headset 지원

이 문서는 Unity에서 EasyAR headset 지원의 전체 아키텍처와 주의 사항을 소개합니다.

시작하기 전에

  • EasyAR headset support를 읽고 EasyAR가 이미 지원하는 headset 유형과 headsets에서 실행할 수 있는 EasyAR 기능을 알아보십시오.

Headset 지원 개요

EasyAR는 Unity에서 headsets를 비교적 유연하게 지원합니다. 일반적으로 두 가지 방식이 있습니다.

  • Built-in support: 일반적으로 EasyAR Sense library에서 device SDK와 직접 연동하고 Unity에서 해당 interfaces를 제공합니다. 예: Apple Vision Pro
  • Extension support: Unity headset extension package를 통해 device SDK와 연동합니다. 예: 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 XR SDK와 연동하거나 headset rendering capabilities를 독립적으로 구현하기 위한 해당 Unity SDK가 있습니다.

    Device A의 headset extension package는 EasyAR Sense Unity Plugin과 device A의 Unity SDK를 연결하여 EasyAR가 device A에서 실행되도록 합니다. 이 support package는 EasyAR에서 제공할 수도 있고 device vendor에서 제공할 수도 있습니다.

  • Device B는 built-in support에 속합니다

    실제로 device B는 device vendor의 구현에 따라 해당 Unity SDK가 있을 수도 있고 없을 수도 있습니다. 예를 들어 Apple Vision Pro에는 해당 Unity SDK가 없고, XREAL에는 해당 Unity SDK가 있습니다.

Built-in support와 extension support의 headsets는 모두 custom camera 사용을 지원합니다.

중요

사용자 지정 카메라 또는 헤드셋에서 평가판 제품(Personal Edition license, 평가판 XR license 또는 평가판 Mega 서비스 등)을 사용할 때 EasyAR Sense는 시작할 때마다 100초 후 응답을 중지합니다(Mega 사용자는 승인 후 EasyAR Business를 통해 시간을 조정할 수 있습니다). 유료 버전의 EasyAR Sense와 유료 EasyAR Mega 서비스에는 이 제한이 없습니다.

Unity에서 virtual camera의 rendering, projection matrix, transform 등은 EasyAR가 제어하지 않습니다. 일반적으로 device SDK 또는 Unity XR SDK가 제어합니다. gesture recognition, eye tracking 등 device 자체 기능은 여전히 device 및 device SDK에서 제공합니다. 사용할 때는 일반적으로 EasyAR와 device SDK를 동시에 사용해야 합니다.

다음 단계