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

シェアードアンカーの状態

リローカライズの間、ARSharedAnchorManager.RelocalizationState からシェアードアンカーの現在の状態を問い合わせることができます。また、シェアードアンカーの状態が変化するたびにイベントを参照することもできます。

シェアードアンカーは以下のいずれかの状態になります。

public enum RelocalizationState
{
Stopped = 0,
Initializing = 1,
Relocalizing = 2,
Relocalized = 3
}

// ARSharedAnchorManager.cs

// Get the current shared anchor state
public RelocalizationState RelocalizationState { get; }

// Attach a callback to this event to listen on shared anchor state changes.
public delegate void RelocalizationStateChanged(RelocalizationState newState);
public event RelocalizationStateChanged OnRelocalizationStateChanged;

活用例

[SerializeField]
private ARSharedAnchorManager _sharedAnchorManager;

private void Update()
{
// Use the RelocalizationState to update a UI Text e.g.,
// _statusLabel.text = _sharedAnchorManager.RelocalizationState.ToString();
}

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

[SerializeField]
private ARSharedAnchorManager _sharedAnchorManager;

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

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

private void UpdateStatusLabel(RelocalizationState newState)
{
// Update a UI Text with current state e.g.,
// _statusLabel.text = newState.ToString();
}