リローカライズのキーポイント
2次元のキーポイントが更新されるたびに、OnRelocalizationPoints2Dupdated
イベントを呼び出すことができます。この処理は、毎フレームの評価が終了した後に走ります。
また、3Dキーポイントの場合は OnRelocalizationPoints3DUPdated
を使用することもできます。
更新されたキーポイントを呼び出すには、ARSharedAnchorManager
コンポーネントの Map Reloc Data Options
にある Get Keypoints 2D
または Get Keypoints 3D
オプションを有効にする必要があることに注意してください。
// ARSharedAnchorManager.cs
// Attach a callback to these events to listen for whenever the keypoints are updated
public delegate void RelocalizationPoints2DUpdated(Vector2 points);
public event RelocalizationPoints2DUpdated OnRelocalizationPoints2DUpdated;
public delegate void RelocalizationPoints3DUpdated(Vector3 points);
public event RelocalizationPoints3DUpdated OnRelocalizationPoints3DUpdated;
活用例
[SerializeField]
private ARSharedAnchorManager _sharedAnchorManager;
private void OnEnable()
{
// Subscribe to event
_sharedAnchorManager.OnRelocalizationPoints2DUpdated += Render2DKeypoints;
_sharedAnchorManager.OnRelocalizationPoints3DUpdated += Render3DKeypoints;
}
private void OnDisable()
{
// Unsubscribe to event
_sharedAnchorManager.OnRelocalizationPoints2DUpdated -= Render2DKeypoints;
_sharedAnchorManager.OnRelocalizationPoints3DUpdated -= Render3DKeypoints;
}
private void Render2DKeypoints(Vector2[] keypoints)
{
// Do something with the keypoints
}
private void Render3DKeypoints(Vector3[] keypoints)
{
// Do something with the keypoints
}