メインコンテンツまでスキップ

ロケーションパーミッションリクエストの処理

この機能は CriteriaBasedMapSelection を使用しているときのみ適用されます。

CriteriaBasedMapSelection を使用する場合、デバイスのGPSを使って現在位置情報を取得する必要があるため、SDKは位置情報の使用許可を要求します。ユーザーは許可を与えることも拒否することもできるので、開発者はこれらのケースに対処する必要があります。

// ARSharedAnchorManager.cs

public delegate void RequestPermissionEvent();

// Attach a callback to this event to listen for when the user denies location usage.
// If the user chooses to deny and not ask anymore, this callback will be called everytime
// criteria-based map selection is run
public event RequestPermissionEvent OnLocationPermissionDenied;

// Attach a callback to this event to listen for when the user grants location usage.
public event RequestPermissionEvent OnLocationPermissionGranted;

活用例

[SerializeField]
private ARSharedAnchorManager _sharedAnchorManager;

private void OnEnable()
{
// Subscribe to events
_sharedAnchorManager.OnLocationPermissionGranted += ShowRelocalizingUI;
_sharedAnchorManager.OnLocationPermissionDenied += ShowDeniedPermissionUI;
}

private void OnDisable()
{
// Unsubscribe to events
_sharedAnchorManager.OnLocationPermissionGranted -= ShowRelocalizingUI;
_sharedAnchorManager.OnLocationPermissionDenied -= ShowDeniedPermissionUI;
}

private void ShowRelocalizingUI()
{
// Enable UI for showing relocalizing state e.g.,
// _relocalizingUI.SetActive(true);
}

private void ShowDeniedPermissionUI()
{
// Enable UI for showing denied location permission state e.g.,
// _deniedPermissionUI.SetActive(true);
}