ロケーションパーミッションリクエストの処理
この機能は
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);
}