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

リローカライズのキーポイント

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
}