Table of Contents

Unity scene에서 Unity XR object 자동 전환

Unity의 XR 컴포넌트(AR Foundation 포함)가 지원할 수 있는 디바이스는 제한적입니다. 지원되는 디바이스에서는 AR Foundation을 사용하면서, 다른 많은 디바이스에서도 AR 기능을 사용할 수 있도록 EasyAR는 Unity XR object 자동 전환 기능을 제공합니다. 다음 내용은 이 기능이 scene object에 적용하는 변경 사항과 사용 방법을 설명합니다.

시작하기 전에

기능 소개

Unity의 AR Foundation은 휴대폰에서 하위 구현이 ARCore와 ARKit이므로 제한된 디바이스에서만 사용할 수 있으며, 특히 많은 중국 내수 Android 휴대폰에서는 사용할 수 없습니다. 따라서 일반적으로 지원되는 디바이스에서만 AR Foundation 및 관련 기능 script를 활성화하는 것이 권장됩니다. Unity XR object 자동 전환 기능은 위 작업을 구현하며, 주로 mobile AR용으로 설계되어 있고 헤드셋에서는 기본 구성에서 비활성화됩니다.

전체 기능이 활성화되면,

기본 구성에서 기능 활성화 조건은 다음과 같습니다.

  • Windows/Mac에서 활성화.
  • switcher 시작 시 mobile AR(ARKit/ARCore)의 loader가 active이면 활성화.
  • switcher 시작 시 mobile AR(ARKit/ARCore) 이외의 다른 loader가 존재하지만 어떤 loader도 active가 아니면 비활성화.
참고

XR Interaction Toolkit의 컴포넌트는 이 기능의 제어를 받지 않으며, EasyAR에서 사용 가능한지는 검증되지 않았습니다. 이론적으로 Unity.XR.CoreUtils.XROrigin GameObject 및 그 Camera만 사용하는 기능은 정상적으로 사용할 수 있어야 합니다. 동작이 비정상적이면 ARSession.ARCenterModeARSession.ARCenterMode.SessionOrigin으로 설정해 볼 수 있습니다. 그래도 기능이 정상적이지 않으면 사용자 정의 XR Interaction Toolkit 컴포넌트 제어를 구현하고, FrameSourceARFoundationFrameSource를 상속하지 않을 때 관련 컴포넌트를 비활성화해야 합니다.

구성 방법

이 기능은 Project Settings > EasyAR > SenseUnity XR > Unity XR Auto Switch 옵션에서 활성화하거나 끌 수 있습니다.

alt text

그림의 옵션 구성 동작은 다음과 같습니다:

  • Editor: 편집 모드 옵션
  • Player: runtime 모드 옵션
    • Enable: runtime 제어를 활성화합니다. 주의: 이 옵션을 끄면 편집 모드에서 비활성화된 컴포넌트는 runtime에 복원되지 않습니다.
    • Enable If Desktop: Windows/Mac에서 활성화합니다.
    • Enable If Mobile AR On Startup: switcher 시작 시 mobile AR(ARKit/ARCore)의 loader가 active이면 활성화합니다. 일반적으로 이 옵션은 Project Settings > XR Plug-in ManagementInitialize XR on Startup이 선택되어 있어야 합니다.
    • Disable If Non Mobile AR Post Startup: switcher 시작 시 mobile AR(ARKit/ARCore) 이외의 다른 loader가 존재하지만 어떤 loader도 active가 아니면 비활성화합니다. 일반적으로 이 옵션은 Project Settings > XR Plug-in ManagementInitialize XR on Startup이 선택되지 않았을 때 사용됩니다.
    • Restore AR Session When Disabled: 기능이 비활성화되면 비활성화된 모든 UnityEngine.XR.ARFoundation.ARSession을 복원(활성화)합니다(EasyAR에 의해 비활성화되었는지 여부와 무관). 이 옵션은 일반적으로 편집 시 비활성화된 컴포넌트를 복원하는 데 사용됩니다.

사용자 정의 제어 방법 사용

이러한 컴포넌트의 전환을 사용자 정의해야 하거나 EasyAR의 동작이 특정 컴포넌트의 정상 동작을 방해하는 경우, 이 옵션들을 꺼두고 다음 기본 규칙에 따라 컴포넌트 전환을 사용자 정의해야 합니다:

  1. editor에서 UnityEngine.XR.ARFoundation.ARSession을 비활성화합니다(실행 순서에서 다른 모든 script보다 빠름)
  2. AR Foundation이 작동을 시작하기 전에 모든 Unity XR Core 컴포넌트와 AR Foundation 컴포넌트, 그리고 제어해야 하는 관련 컴포넌트 또는 기능을 비활성화합니다
  3. easyar.ARSession.Assemble() 과정에서 ARCoreARFoundationFrameSource 또는 ARKitARFoundationFrameSource가 선택된 경우, 이전에 비활성화한 모든 컴포넌트 또는 기능을 StartSession() 완료 전에 활성화해야 하며, 일반적으로 easyar.ARSession.AssembleUpdate 이벤트 응답에서 완료하는 것이 권장됩니다
  4. easyar.ARSession.Assemble() 과정에서 다른 FrameSource를 선택해 사용한 경우에는 그대로 유지합니다

관련 항목