Table of Contents

UI 메시지

EasyAR Sense Unity 플러그인 런타임에는 세 가지 유형의 메시지가 있습니다.

  • 런타임 예외: Sense Error, Session Error, Error, Warning 포함
  • 세션 덤프(Session Dump)
  • EasyAR Mega 개발 특수 예외

필요에 따라 처음 두 유형의 메시지 출력 방식을 조정할 수 있습니다. 에디터에서는 세션의 DiagnosticsController 컴포넌트를 통해 구성하거나, 스크립트에서 DiagnosticsController.MessageOutput 인터페이스를 사용하여 구성할 수 있습니다.

diagnostics ui messages

4000 버전에서, 씬이 이전 버전 플러그인으로 생성된 경우 씬을 열면 DiagnosticsController가 세션에 자동으로 추가됩니다. 일부 Unity 버전에서는 자동 추가되지 않을 수 있으며, 이러한 Unity 버전에서는 런타임에 DiagnosticsController가 기본값으로 자동 생성됩니다.

런타임 예외

플러그인 실행 중 내부 컴포넌트에서 발견된 일부 문제가 시스템에 메시지 형태로 나타납니다. 이러한 메시지 중 일부는 계속 사용할 수 없는 심각한 오류일 수 있고, 일부는 의도적으로 트리거된 것일 수 있으며, 일부는 기기가 지원되지 않는 등일 수 있습니다. 심각도가 높은 순서대로 다음과 같이 분류됩니다:

  • SenseError: EasyAR Sense 오류, 일반적으로 EasyAR Sense 라이선스와 관련이 있습니다.
  • SessionError: ARSession 오류, 일반적으로 기기가 일부 기능을 지원하지 않거나 잘못된 구성과 관련이 있습니다.
  • Error: 기타 오류 정보
  • Warning: 경고 정보

Unity 개발의 특수성으로 인해, 개발을 보조하기 위해 기본적으로 이러한 메시지가 UI에 표시됩니다.

에디터나 스크립트에서 이러한 메시지가 어떻게 표시될지 제어할 수 있으며, 선택 가능한 출력 모드는 다음과 같습니다:

  • UIAndLog: UI와 로그에 출력. 헤드셋에서는 시선 앞 5미터 지점에 표시됩니다.
  • Log: 시스템 로그에 출력.
  • 개발 및 테스트 단계에서는 기본 구성인 UIAndLog를 사용하는 것이 좋습니다.
  • 출시 시에는 옵션을 Log로 변경하는 것이 좋습니다. UIAndLog를 유지할 수도 있지만, 이 UI 메시지들은 일반적으로 최종 사용자에게 친숙하지 않습니다.
  • 실행 전에 세션 가용성 및 기기 지원 여부를 판단하고 지원되지 않는 기기에 대해 적절히 안내하는 것이 좋습니다.

Sense error

Sense Error는 특수한 유형의 오류로, 이 오류가 발생하면 EasyAR 기능을 계속 사용할 수 없습니다. 일반적인 원인:

  • 라이선스가 올바르게 구성되지 않았거나 검증에 실패했습니다. 이 오류는 올바른 라이선스로 재초기화하여 복구할 수 있습니다.
  • 일부 기기(AR Foundation, AR Engine 등 사용자 정의 카메라를 사용하는 모든 기기 또는 다양한 헤드셋 포함)에서 평가판 제품(개인용 라이선스, XR 라이선스 평가판 또는 Mega 서비스 평가판 등)을 고정된 제한 시간을 초과하여 사용했습니다. 이 오류는 복구할 수 없습니다.

Session error

Session Error는 현재 ARSession이 계속 작동할 수 없는 오류입니다. 구성을 수정하고 ARSession을 다시 실행하면 이러한 오류를 해결할 수 있습니다. 이러한 오류는 일반적으로 잘못된 구성, 시작 프로세스에서 예외가 발생하여 조립이 중단된 경우, 현재 ARSession 구성에 기기가 지원되지 않거나 실행 중에 ARSession 컴포넌트가 손실되는 등의 원인으로 발생합니다.

일반적인 사례:

  • 세션 조립 오류: 예를 들어 기기가 지원되지 않거나 지원되는 기기의 Frame Source가 ARSession에 올바르게 구성되지 않은 경우 등.
  • 세션 시작 오류: 클라우드 서비스 구성 정보가 잘못되어 클라우드 서비스 기능 생성 오류 발생, 또는 구성 정보가 입력되지 않은 경우(Mega 서비스, 클라우드 인식 서비스, SpatialMap 서비스 포함) 등.
  • 세션 실행 중 오류: ARSession 컴포넌트가 외부적으로 파괴됨, URP 환경에서 RendererFeature가 올바르게 구성되지 않은 경우 등.

일반적으로 구성 오류 및 시작 프로세스의 예외로 인한 조립 중단은 개발 과정에서 피해야 합니다. 기기 지원 문제는 주로 모션 추적 기능이 필요한 기능에서 발생합니다. 모션 추적과 EasyAR 기능을 참조하여 어떤 기능에 기기 지원이 주의를 요하는지 파악하고 개발 단계에서 적절한 기기를 선택하여 디버깅해야 합니다.

세션 덤프

SessionDump 메시지는 플러그인 실행 중 수집된 ARSession의 실행 상태를 보여주며, 각 컴포넌트의 몇 가지 주요 상태를 포함합니다. 이 상태 정보는 EasyAR의 실행을 이해하고 문제를 분석하는 데 큰 도움이 됩니다.

에디터나 스크립트에서 이 상태가 어떻게 표시될지 제어할 수 있으며, 선택 가능한 출력 모드는 다음과 같습니다:

  • UI: UI에 표시되고 매 프레임 업데이트됩니다. 헤드셋에서는 시선 앞 5미터 지점에 표시됩니다.
  • Log: 시스템 로그에 출력됩니다. 매 프레임마다 출력되므로 실행 성능에 영향을 미칠 수 있으므로 개발 또는 테스트 시 사용하는 것이 좋습니다.
  • None: 출력하지 않습니다.
  • 개발 및 테스트 단계에서는 기본 구성인 UI를 사용하는 것이 좋습니다. 여기에 표시되는 정보는 EasyAR 직원과 소통하는 데 필수적입니다.
  • 정식 출시 후에는 None으로 변경하고, UI를 열 수 있는 소프트웨어 스위치를 유지하거나 다른 시스템을 통해 데이터를 수집하는 것이 좋습니다. EasyAR에 문제를 보고할 때 EasyAR은 문제를 판단하기 위해 해당 정보를 요청합니다.
  • 대부분의 경우, 앱 출시 후 실행 문제가 발생하면 먼저 문제 조사 및 분석을 수행해야 하며, 앱 문제를 배제하고 충분한 정보를 확보한 후에야 효과적으로 해결할 수 있습니다. 로그 수집 및 분석을 위한 제3자 SDK 및 플랫폼은 다양하므로 출시 전에 사용하는 것이 좋습니다. 이러한 플랫폼 사용 경험이나 리소스가 없는 경우, UI를 열 수 있는 스위치(예: 숨겨진 스위치)를 유지하여 사용자가 보고한 정보를 받아보는 것이 간단한 방법이 될 것입니다.

EasyAR Mega 개발 특수 예외

Mega 개발에는 제어할 수 없는 경고 메시지 유형이 하나 더 있습니다. 이 메시지는 특정 구성 조건이 충족될 때 UI에 표시되며 개발자는 직접 끌 수 없습니다.

메시지 자체에 집중하는 것이 좋습니다. 텍스트는 발생 원인과 구성 방법을 명확히 설명합니다. 개발자는 다양한 구성이 다른 사용 방식에 미치는 요구 사항을 이해하고 개발 진행 상황에 따라 적절히 선택해야 합니다.

이러한 메시지는 의도적으로 표시되는 것입니다. 특정 사용 조건 하에서 이 기능들은 콘텐츠 프로세스 개발을 보조하지만 동시에 합리적인 실행 결과를 얻을 수 없기 때문입니다. 이 메시지가 표시된 상태로 출시하지 않도록 주의하세요.

관련 주제