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

Relocスコア

この機能は、マップベースの再定義にのみ対応しています。

マップベースのリローカライズの場合、 RelocalizationScore を参照することで、リローカライズの成功にどれだけ近づいたかを知ることができます。Relocalization Score0f から 1f までの範囲の浮動小数点数で、 0f に近いほどリローカライズができていないことを、 1f に近いほどリローカライズ成功に近いことを示しています、

このスコアはデバイスの位置によって変化するため、スコアが低いままであればユーザーは現在の位置から移動することを推奨します。

また、スコアが更新されるたびに OnRelocalizationScoreUpdated イベントを参照することもできます。

// ARSharedAnchorManager.cs

// Get the current relocalization score
public float RelocalizationScore { get; }

// Attach a callback to this event to listen for whenever the relocalization score changes
public delegate void RelocalizationScoreUpdated(float score);
public event RelocalizationScoreUpdated OnRelocalizationScoreUpdated;

活用例

[SerializeField]
private ARSharedAnchorManager _sharedAnchorManager;

private void Update()
{
// Use the RelocalizationScore to update a visual indicator e.g.,
// _visualIndicator.Value = _sharedAnchorManager.RelocalizationScore;
}

イベントと相互に使うこともできます。

[SerializeField]
private ARSharedAnchorManager _sharedAnchorManager;

private void OnEnable()
{
// Subscribe to event
_sharedAnchorManager.OnRelocalizationScoreUpdated += UpdateVisualIndicator;
}

private void OnDisable()
{
// Unsubscribe to event
_sharedAnchorManager.OnRelocalizationScoreUpdated -= UpdateVisualIndicator;
}

private void UpdateVisualIndicator(float score)
{
// Update the visual indicator with the relocalization score value e.g.,
// _visualIndicator.Value = score;
}