UI 메시지
EasyAR Sense Unity Plugin 실행 시에는 세 가지 유형의 메시지가 있습니다.
- 실행 예외. Sense Error, Session Error, Error, Warning 포함
- Session Dump
- EasyAR Mega 개발 특수 예외
필요에 따라 앞의 두 유형 메시지의 출력 방식을 조정할 수 있습니다. session의 DiagnosticsController 컴포넌트를 통해 에디터에서 설정하거나, 스크립트에서 DiagnosticsController.MessageOutput 인터페이스를 사용해 설정할 수 있습니다.

팁
4000 버전에서는 구버전 플러그인으로 생성된 씬의 경우, 씬을 열 때 DiagnosticsController가 session에 자동으로 추가됩니다. 일부 Unity 버전에서는 자동으로 추가되지 않을 수 있으며, 이러한 Unity 버전에서는 DiagnosticsController가 런타임에 기본값으로 자동 생성됩니다.
실행 예외
플러그인 실행 중 내부 컴포넌트가 발견한 문제가 메시지 형태로 시스템에 나타나는 경우가 있습니다. 이러한 메시지 중 일부는 계속 사용할 수 없는 심각한 장애일 수 있고, 일부는 의도적으로 발생한 것일 수 있으며, 일부는 디바이스 미지원 등으로 인한 것일 수 있습니다. 심각도 높은 순서에서 낮은 순서로 다음 범주로 나뉩니다.
- SenseError: EasyAR Sense 오류. 일반적으로 EasyAR Sense license와 관련됩니다.
- SessionError: ARSession 오류. 일반적으로 디바이스가 일부 기능을 지원하지 않거나 설정이 잘못된 것과 관련됩니다.
- Error: 기타 오류 정보
- Warning: 경고 정보
Unity 개발의 특성상, 개발을 돕기 위해 이러한 메시지는 기본적으로 UI에 표시됩니다.
에디터 또는 스크립트에서 이러한 메시지가 표시되는 방식을 제어할 수 있습니다. 선택 가능한 출력 모드는 다음과 같습니다.
팁
- 개발 및 테스트 단계에서는 기본 설정 UIAndLog 사용을 권장합니다.
- 릴리스 시에는 옵션을 Log로 변경하는 것을 권장합니다. UIAndLog를 유지할 수도 있지만, 이러한 UI 메시지는 일반적으로 최종 사용자에게 친절하지 않습니다.
- 실행 전에 session 사용 가능성과 디바이스 지원 여부를 판단하고, 지원되지 않는 디바이스에는 합리적인 안내를 제공하는 것을 권장합니다.
Sense Error
Sense Error는 특수한 오류 유형입니다. 오류가 발생하면 EasyAR 기능을 계속 사용할 수 없습니다. 일반적인 원인:
- License가 올바르게 설정되지 않았거나 검증에 실패했습니다. 이 오류는 올바른 license로 다시 초기화하여 복구할 수 있습니다.
- AR Foundation, AR Engine, 사용자 지정 카메라를 사용하는 모든 디바이스 또는 여러 헤드셋을 포함한 일부 디바이스에서 Personal Edition license, 체험판 XR license, 체험판 Mega 서비스 등 체험 제품의 고정 제한 시간을 초과해 사용했습니다. 이 오류는 복구할 수 없습니다.
Session Error
Session Error는 현재 ARSession이 계속 작동할 수 없는 오류입니다. 설정을 수정하고 ARSession을 다시 실행하면 이러한 오류를 해결할 수 있을 수 있습니다. 이러한 오류는 일반적으로 설정 오류, 시작 흐름 중 예외 발생으로 조립 중단, 현재 ARSession 설정을 디바이스가 지원하지 않음, 또는 실행 중 ARSession 컴포넌트 유실 등으로 인해 발생합니다.
일반적인 상황:
- Session 조립 오류: 예를 들어 디바이스가 지원되지 않거나, 지원 디바이스의 Frame Source가 ARSession에 올바르게 설정되지 않은 경우.
- Session 시작 오류: cloud service 설정 정보가 잘못되어 cloud service 기능 생성에 오류가 발생하거나, Mega 서비스, cloud recognition 서비스, SpatialMap 서비스 등 설정 정보가 입력되지 않은 경우.
- Session 실행 중 오류: ARSession 컴포넌트가 외부에서 파괴됨, URP 환경에서 RendererFeature가 올바르게 설정되지 않음 등.
일반적으로 설정 오류와 시작 흐름 중 예외로 인해 조립이 중단되는 상황은 개발 과정에서 피해야 합니다. 디바이스 미지원 상황은 주로 motion tracking 기능이 필요한 기능에서 나타납니다. Motion tracking과 EasyAR 기능을 참고하여 어떤 기능에서 디바이스 지원을 주의해야 하는지 이해하고, 개발 단계에서 적합한 디바이스를 선택해 디버깅하세요.
Session Dump
SessionDump 메시지는 플러그인 실행 중 수집된 ARSession의 실행 상태를 표시하며, 각 컴포넌트의 주요 상태를 포함합니다. 이러한 상태 정보는 EasyAR의 실행을 이해하고 문제를 분석하는 데 큰 도움이 됩니다.
에디터 또는 스크립트에서 이러한 상태가 표시되는 방식을 제어할 수 있습니다. 선택 가능한 출력 모드는 다음과 같습니다.
- UI: UI에 표시하고 매 프레임 업데이트합니다. 헤드셋에서는 눈앞 5미터 위치에 표시됩니다.
- Log: 시스템 로그에 출력합니다. 매 프레임 출력되므로 실행 성능에 영향을 주며, 개발 또는 테스트 시 사용을 권장합니다.
- None: 출력하지 않습니다.
팁
- 개발 및 테스트 단계에서는 기본 설정 UI 사용을 권장합니다. 위에 표시되는 정보는 EasyAR 담당자와 소통할 때 필수적입니다.
- 정식 출시 후에는 None으로 변경하고 UI를 켤 수 있는 소프트웨어 스위치를 유지하거나, 다른 시스템을 통해 데이터를 수집하는 것을 권장합니다. EasyAR에 문제를 피드백할 때 EasyAR는 애플리케이션 실행 상태를 판단하기 위해 귀하 또는 사용자의 이러한 정보를 요청합니다.
- 대부분의 경우, 애플리케이션 출시 후 문제가 발생하면 애플리케이션 측에서 먼저 문제 조사와 분석을 수행해야 합니다. 애플리케이션 문제를 배제하고 충분한 정보를 확보한 뒤 피드백한 문제가 더 잘 해결될 수 있습니다. 로그 수집과 분석을 위한 서드파티 SDK 및 플랫폼은 많으므로 출시 전에 사용하는 것을 권장합니다. 이러한 플랫폼 사용 경험이나 리소스가 없다면, UI를 켤 수 있는 스위치, 예를 들어 숨겨진 스위치를 유지하여 사용자가 본 정보를 피드백하게 하는 방식이 비교적 간단합니다.
EasyAR Mega 개발 특수 예외
Mega 개발 중에는 제어할 수 없는 경고 메시지도 있습니다. 이러한 메시지는 특정 설정 조건을 만족할 때 UI에 표시되며, 개발자가 직접 닫을 수 없습니다.
메시지 자체에 주의하는 것을 권장합니다. 문구에는 발생 원인과 설정 방법이 명확히 적혀 있습니다. 개발자는 서로 다른 사용 방식에 대한 서로 다른 설정의 요구사항을 이해하고 개발 진행 상황에 따라 합리적으로 선택해야 합니다.
이러한 메시지는 의도적으로 표시됩니다. 특정 사용 조건에서는 이러한 기능이 콘텐츠 흐름 개발을 돕지만, 동시에 합리적인 실행 결과를 얻을 수 없습니다. 메시지를 포함한 상태로 출시하지 않도록 주의하세요.