index
title: class ARPersistentAnchorManager toc_max_heading_level: 4
class ARPersistentAnchorManager
(Niantic.Lightship.AR.PersistentAnchors.ARPersistentAnchorManager)。
概要
永続的なアンカーを管理します。
class ARPersistentAnchorManager:ARTrackableManager< XRPersistentAnchorSubsystem, XRPersistentAnchorSubsystemDescriptor, XRPersistentAnchorSubsystem.Provider, XRPersistentAnchor, ARPersistentAnchor > {
public:
// イベント
event arPersistentAnchorStateChanged();
// メソッド
bool GetVpsSessionId(out string vpsSessionId);
bool TryTrackAnchor(
ARPersistentAnchorPayload payload,
out ARPersistentAnchor arPersistentAnchor
);
void DestroyAnchor(ARPersistentAnchor arPersistentAnchor);
protected:
// フィールド
bool InterpolateAnchors = false;
bool TemporalFusionEnabled = false;
override string gameObjectName => "Persistent Anchor";
// メソッド
override GameObject GetPrefab();
override void OnEnable();
virtual void Start();
override void OnDisable();
override void OnDestroy();
override void OnTrackablesChanged(
List<ARPersistentAnchor> added,
List<ARPersistentAnchor> updated,
List<ARPersistentAnchor> removed
);
};
// direct descendants
class ARLocationManager;
詳細なドキュメント
永続的なアンカーを管理します。
このコンポーネントを使用して、プログラムによって永続的なアンカーの復元や削除、クエリを行います。 永続的なアンカーとは、処理されたスキャンによって生成される、世界における永続的なポーズのことで、今後のセッションでも同じ現実世界の場所に存在する。 仮想コンテンツを永続的なアンカーに相対的に配置することで、将来のセッションで現実世界の同じ位置に復元することができます。
永続的なアンカーを管理するための低レベルのAPIです。 Unity Editorでバーチャルコンテンツをオーサリングする場合は、代わりにARLocationManagerとARLocationsを使用してください。
ARPersistentAnchorManager.arPersistentAnchorStateChangedイベントで変更(追加、更新、削除)をサブスクライブします。
こちらもご覧ください
ARTrackableManager<TSubsystem,TSubsystemDescriptor,TProvider,TSessionRelativeData,TTrackable>
フィールド
gameObjectName
override string gameObjectName => "Persistent Anchor"
各 ARPersistentAnchorに対してインスタンス化された GameObject
に割り当てる名前。
イベント
arPersistentAnchorStateChanged
event arPersistentAnchorStateChanged()
アンカーの状態が変化すると呼び出されます。
このイベントの各呼び出しには、このフレームで状態またはポーズが変更された1つのPersistent Anchorが含まれます。 argのarPersistentAnchorのTrackingStateを問い合わせて、新しいTrackingStateを決定する。 arPersistentAnchor の PredictedPose を問い合わせて、新しい PredictedPose を決定します。
メソッド
GetPrefab
override GameObject GetPrefab()
ARPersistentAnchorを作成する際に使用するプレハブ。 NULLの場合は、新しいGameObjectが作成されます。
OnTrackablesChanged
override void OnTrackablesChanged(
List<ARPersistentAnchor> added,
List<ARPersistentAnchor> updated,
List<ARPersistentAnchor> removed
)
ベースクラスで追跡可能な変更が検出されると呼び出されます。
パラメーター:
added
- 追加されたアンカーのリスト。
updated
- 更新されたアンカーのリスト。
removed
- 削除されたアンカーのリスト。
GetVpsSessionId
bool GetVpsSessionId(string vpsSessionId)
vpsセッションIDを取得します(32文字の16進数大文字文字列) vpsセッションは、指定されたアンカーセットに対して最初のTryTrackAnchorと最後のDestroyAnchorの間で定義されます。
パラメーター:
vpsSessionId
- vps セッション ID (32 文字の 16 進大文字)
次の値が返ります。
True vpsセッションIDを取得できる場合 False vpsセッションが実行されていない場合
TryTrackAnchor
bool TryTrackAnchor(
ARPersistentAnchorPayload payload,
out ARPersistentAnchor arPersistentAnchor
)
ペイロードから永続的なアンカーを復元します。 アンカーのGameObjectが直ちに返るため、子オブジェクトを 追加できますが、適切な位置や回転はTrackingStateがTrackingになるまで適用されません。
パラメーター:
payload
- 復元するアンカーのペイロード
arPersistentAnchor
- ペイロードから作成された ARPersistentAnchor
次の値が返ります。
True トラッキングのためにアンカーが正常に追加された場合。 False アンカーを追加できない。すでに追加されているか、ペイロードが無効である。
DestroyAnchor
void DestroyAnchor(ARPersistentAnchor arPersistentAnchor)
アンカーを破壊し、トラッキングを停止します。
パラメーター:
arPersistentAnchor
- 破壊するアンカー