iOS をターゲットとする Unity(AR Foundation)アプリで Geospatial API を有効にする

Geospatial API を使用できるようにアプリの設定を構成します。

前提条件

続行する前に、AR の基本コンセプトARCore セッションを構成する方法を理解してください。

Geospatial API の詳細については、Geospatial API の概要をご覧ください。

ARCore を使った開発を初めて行う場合は、スタートガイドで、ソフトウェアとハードウェアの要件、前提条件、使用しているプラットフォームに固有の情報を確認してください。

ARCore Geospatial API を使用するには、プロジェクトが AR FoundationAR Foundation 用の ARCore Extensions をサポートしている必要があります。

ARCore API を有効にする

アプリで Visual Positioning System(VPS)を使用する前に、新しい Google Cloud プロジェクトまたは既存の Google Cloud プロジェクトで ARCore API を有効にする必要があります。このサービスは、地理空間アンカーのホスティング、保存、解決を行います。

キーレス認証が推奨されますが、API キー認証もサポートされています。

必要なライブラリをアプリに追加する

ARCore API を呼び出すようにアプリを承認したら、ライブラリを追加してアプリで地理空間機能を有効にする必要があります。

  1. [Edit] > [Project Settings] > [XR Plug-In Management] > [ARCore Extensions] に移動します。[iOS サポートを有効にする] が選択されていることを確認します。
  2. [オプション機能] で [Geospatial] を選択します。

セッション構成でジオ空間機能を有効にする

アプリで Geospatial 機能を有効にしたら、アプリの AR セッション構成で Geospatial 機能を有効にして、ARCore API と通信できるようにします。

  1. プロジェクトの Assets フォルダに ARCoreExtensionsConfig スクリプト可能なオブジェクトが含まれていることを確認します。作成するには、[アセット] ペインで右クリックし、[作成] > [XR] > [ARCore Extensions Config] を選択します。
  2. Assets フォルダで 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 API は VPS と GPS を組み合わせてジオ空間ポーズを決定するため、デバイスが位置を特定できる限り、この API を使用できます。屋内空間や人口密集地など、GPS の精度が低い地域では、API は VPS のカバレッジに依存して高精度の姿勢を生成します。一般的な条件下では、VPS は位置精度が約 5 メートル、回転精度が 5 度と見込まれます。AREarthManager.CheckVpsAvailability() を使用して、特定の場所が VPS の対象かどうかを判断します。

Geospatial API は、VPS がカバーしていない地域でも使用できます。屋外で上部に遮蔽物がほとんどない環境では、GPS だけでも高い精度でポーズを生成できる場合があります。

次のステップ