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