シェアードアンカーの状態
リローカライズの間、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();
}