Relocスコア
この機能は、マップベースの再定義にのみ対応しています。
マップベースのリローカライズの場合、 RelocalizationScore
を参照することで、リローカライズの成功にどれだけ近づいたかを知ることができます。Relocalization Score
は 0f
から 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;
}