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

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

前提条件

AR の基礎的なコンセプトを理解しておいてください。 と ARCore セッションを構成する方法を確認してください。

詳しくは、 Geospatial API の概要 Geospatial API に関する情報です

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

ARCore Geospatial API を使用するには、プロジェクトで AR 基盤 ARCore Extensions for AR Foundation をご覧ください。

ARCore API を有効にする

アプリでビジュアル ポジショニング システム(VPS)を使用する前に、 ARCore API を有効にします Google Cloud プロジェクトで管理されます。このサービスは 地理空間アンカーのホスティング、保存、解決です。

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

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

アプリでの ARCore API の呼び出しを承認したら、次にライブラリを アプリで地理空間機能を有効にします。

  1. [編集] >プロジェクト設定 >XR プラグイン管理 >ARCore 拡張機能。[iOS Support Enabled] が選択されていることを確認します。
  2. [Optional Features] で [Geospatial] を選択します。

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

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

  1. プロジェクトの Assets フォルダに、ARCoreExtensionsConfig スクリプト可能オブジェクトが含まれていることを確認します。アセットを作成するには、[Assets] ペインを右クリックして [Create] を選択します。XR >ARCore 拡張機能の構成
  2. Assets フォルダで ARCoreExtensionsConfig スクリプト可能オブジェクトを選択し、[Geospatial Mode] を [Enabled] に設定します。

  3. ARCoreExtensionsConfig 構成を使用するように、ARCore Extensions ゲーム オブジェクトを設定します。[Hierarchy] ペインで、ARCore 拡張機能を最初にセットアップしたときに作成した [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 で高精度のポーズを生成できます。

次のステップ