Unity에서의 EasyAR 헤드셋 지원
이 문서는 Unity에서 EasyAR 헤드셋 지원의 전반적인 아키텍처와 고려사항을 설명합니다.
시작하기 전에
- EasyAR의 헤드셋 지원을 읽어 EasyAR이 지원하는 헤드셋 유형과 헤드셋에서 실행 가능한 EasyAR 기능을 파악하세요.
헤드셋 지원 개요
EasyAR은 Unity에서 다음과 같은 두 가지 유연한 방식으로 헤드셋을 지원합니다:
- 내장 지원: 일반적으로 EasyAR Sense 라이브러리에서 디바이스 SDK와 직접 통합하고 Unity에 해당 인터페이스를 제공합니다 (예: Apple Vision Pro)
- 확장 지원: Unity 헤드셋 확장 패키지를 통해 디바이스 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["네이티브 라이브러리"]
block:groupSystemWrapper
space
DeviceA["Device A<br> 라이브러리 "]
space
space
DeviceB["Device B<br> 라이브러리 "]
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 XR SDK와 통합하거나 독립적인 헤드셋 렌더링 기능을 구현하기 위한 대응 Unity SDK를 보유합니다.
디바이스 A의 헤드셋 확장 패키지는 EasyAR Sense Unity 플러그인과 디바이스 A의 Unity SDK를 연결하여 EasyAR이 디바이스 A에서 실행되도록 합니다. 이 지원 패키지는 EasyAR에서 제공하거나 디바이스 제조사가 제공할 수 있습니다.
디바이스 B는 내장 지원에 해당합니다
실제로 디바이스 B는 디바이스 제조사의 구현에 따라 대응 Unity SDK가 있을 수도 있고 없을 수도 있습니다. 예를 들어 Apple Vision Pro는 대응 Unity SDK가 없지만, XREAL은 대응 Unity SDK가 있습니다.
내장 지원과 확장 지원 헤드셋 모두 커스텀 카메라를 사용하는 기능을 지원합니다.
중요
사용자 정의 카메라 또는 헤드셋에서 평가판 제품(개인판 license, 평가판 XR license 또는 평가판 Mega 서비스 등)을 사용할 때, EasyAR Sense는 시작 후 100초(Mega 사용자는 EasyAR 비즈니스를 통해 승인 후 시간 조정 가능) 후에 응답을 중지합니다. 유료 버전의 EasyAR Sense와 유료 EasyAR Mega 서비스를 사용할 때는 이 제한이 없습니다.
Unity에서는 가상 카메라의 렌더링, 투영 행렬 및 transform 등이 EasyAR에 의해 제어되지 않으며, 일반적으로 디바이스 SDK 또는 Unity XR SDK가 제어합니다. 제스처 인식, 시선 추적 등 디바이스 자체의 기능은 여전히 디바이스 및 디바이스 SDK에 의해 제공됩니다. 사용 시에는 일반적으로 EasyAR과 디바이스 SDK를 함께 사용해야 합니다.