iOS를 타겟팅하는 Unity (AR Foundation) 앱에 Geospatial API 사용 설정

Geospatial API를 사용할 수 있도록 앱 설정을 구성합니다.

기본 요건

계속하기 전에 기본 AR 개념ARCore 세션을 구성하는 방법을 이해해야 합니다.

Geospatial API에 관한 자세한 내용은 Geospatial API 소개를 참고하세요.

ARCore로 개발하는 것이 처음이라면 시작하기에서 소프트웨어 및 하드웨어 요구사항, 기본 요건, 사용 중인 플랫폼과 관련된 기타 정보를 확인하세요.

ARCore Geospatial API를 사용하려면 프로젝트에서 AR FoundationAR Foundation용 ARCore 확장 프로그램을 지원해야 합니다.

ARCore API 사용 설정

앱에서 VPS (Visual Positioning System)를 사용하려면 먼저 새 Google Cloud 프로젝트 또는 기존 Google Cloud 프로젝트에서 ARCore API를 사용 설정해야 합니다. 이 서비스는 지리정보 앵커를 호스팅, 저장, 확인합니다.

키 없는 승인이 선호되지만 API 키 승인도 지원됩니다.

앱에 필요한 라이브러리 추가

앱이 ARCore API를 호출하도록 승인한 후에는 앱에서 지리정보 기능을 사용 설정할 라이브러리를 추가해야 합니다.

  1. Edit(수정) > Project Settings(프로젝트 설정) > XR Plug-In Management(XR 플러그인 관리) > ARCore Extensions(ARCore 확장)로 이동합니다. iOS Support Enabled(iOS 지원 사용 설정됨)가 선택되어 있는지 확인합니다.
  2. 선택적 기능에서 Geospatial을 선택합니다.

세션 구성에서 지리정보 기능 사용 설정

앱에서 Geospatial 기능을 사용 설정한 후 앱의 AR 세션 구성에서 Geospatial 기능을 사용 설정하여 ARCore API와 통신할 수 있도록 합니다.

  1. 프로젝트 애셋 폴더에 ARCoreExtensionsConfig 스크립트 객체가 포함되어 있는지 확인합니다. 구성을 만들려면 애셋 창을 마우스 오른쪽 버튼으로 클릭하고 만들기 > XR > ARCore Extensions Config를 선택합니다.
  2. 애셋 폴더에서 ARCoreExtensionsConfig 스크립트 가능 객체를 선택하고 Geospatial Mode(지리적 모드)를 Enabled(사용)로 설정합니다.

  3. ARCoreExtensionsConfig 구성을 사용하도록 ARCore Extensions 게임 객체를 구성합니다. Hierarchy 창에서 ARCore Extensions를 처음 설정할 때 만든 ARCore Extensions 게임 객체를 찾아 ARCore Extensions Config 필드를 Assets 폴더의 ARCoreExtensionsConfig 스크립트 객체에 연결합니다.

사용자에게 기기 데이터 사용을 허용하라는 메시지 표시

ARCore Geospatial API를 사용하는 앱은 사용자에게 기기의 데이터 사용을 확인하고 허용하라는 메시지를 표시해야 합니다. 자세한 내용은 사용자 개인 정보 보호 요구사항을 참고하세요.

기기 호환성 확인

ARCore를 지원하는 모든 기기가 Geospatial API를 지원하는 것은 아닙니다. 사용자 기기의 호환성을 확인하려면 AREarthManager.IsGeospatialModeSupported()를 호출합니다. FeatureSupported.Unsupported가 반환되면 세션을 구성하려고 시도하지 마세요.

런타임 시 사용자에게 위치 정보 액세스 권한 요청

런타임 권한 요청을 트리거하는 스크립트에서 Unity의 위치 서비스를 사용 설정하려면 다음 단계를 따르세요.

  1. Project Settings > iOS > Other Settings > Location Usage Description에 권한을 요청하는 앱의 이름을 입력합니다.

  2. 다음과 같이 Unity의 위치 서비스를 사용 설정하여 런타임 권한 요청을 트리거합니다.

    public void OnEnable()
    {
        Input.location.Start();
    }
    
    public void OnDisable()
    {
        Input.location.Stop();
    }
    

    자세한 내용은 Unity의 LocationService 문서를 참고하세요.

기기의 현재 위치에서 Geospatial 사용 가능 여부 확인

Geospatial API는 VPS와 GPS를 조합하여 Geospatial 포즈를 결정하므로 기기가 위치를 파악할 수 있는 한 API를 사용할 수 있습니다. 실내 공간 및 인구 밀집 도시 환경과 같이 GPS 정확도가 낮은 지역에서는 API가 VPS 노출 영역을 사용하여 고정밀도 포즈를 생성합니다. 일반적인 조건에서 VPS는 위치 정확도는 약 5m, 회전 정확도는 5도입니다. AREarthManager.CheckVpsAvailability()를 사용하여 지정된 위치에 VPS 적용 범위가 있는지 확인합니다.

Geospatial API는 VPS 적용 범위가 없는 지역에서도 사용할 수 있습니다. 오버헤드 장애물이 거의 또는 전혀 없는 야외 환경에서는 GPS만 사용해도 높은 정확도로 자세를 취할 수 있습니다.

다음 단계