ランタイム時にARロケーションのVPSカバレッジをクエリする
VPS Coverage APIには、マップに表示したり、 ARLocationManager のローカライゼーションターゲットとして使用するために、ランタイム時にARロケーションを検出する機能が含まれています。
CoverageClientManagerを設定する
CoverageClientManager は、Unityエディターでシーンに追加するか、ランタイム時に AddComponent を通じて追加できます。 ARLocationは、ユーザーの現在のGPS位置か、ユーザーが指定した位置(例えば、地図上の都市をリモートで表示する)の周辺にあるARLocationを問い合わせることができます。 また、 CoverageClientManager には、GPS位置の周辺でクエリを実行する半径(メートル単位)を定義するための QueryRadius 設定も含まれています。
備考
Unityプロジェクトでは、ビルドターゲットに対して位置情報へのアクセス許可を設定する必要があります。 iOSでは、 Project Settings(プロジェクト設定) で Location Usage Description(位置情報の使用目的) を設定する必要があります。 Androidの場合、ユーザーはACCESS_FINE_LOCATIONパーミッションを与える必要があり、CoverageClientManagerは使用時にこれを要求します。
以下のコードスニペットは、ユーザーの現在地から 1km 以内にある ARLocation をクエリする CoverageClientManager の設定と構成を示しています。
クリックして、CoverageClientManagerExample.csを表示
using Niantic.Lightship.AR.VpsCoverage;
using UnityEngine;
public class CoverageClientManagerExample : MonoBehaviour
{
    [SerializeField]
    private CoverageClientManager CoverageClientManager;
    public void QueryAroundUser()
    {
        // 指定されていない場合、現在のゲームオブジェクトに追加します。
        if (!CoverageClientManager)
        {
            CoverageClientManager = gameObject.AddComponent<CoverageClientManager>();
        }
        // デバイスの現在位置を使用してカバレッジのクエリを実行します。クエリの半径は1000メートルに設定します。
        CoverageClientManager.UseCurrentLocation = true;
        CoverageClientManager.QueryRadius = 1000;
        
        CoverageClientManager.TryGetCoverage(OnCoverageResult);
    }
    private void OnCoverageResult(AreaTargetsResult result)
    {
        // 現時点では何も処理を行いません。
    }
}