Share via


WLT+ASA: Übersicht über unterstützende Software

IBinder: Binden von SpacePins an Azure Spatial Anchors

Die IBinder-Schnittstelle befindet sich im Mittelpunkt und wird hier von der SpacePinBinder-Klasse implementiert. Der SpacePinBinder ist ein Unity Monobehaviour und kann entweder über den Unity Inspector oder vom Skript aus konfiguriert werden.

Jeder IBinder wird benannt, sodass ein einzelnes IBindingOracle Bindungen für mehrere IBinder verwalten kann.

IPublisher: Lesen und Schreiben von Raumankern in der Cloud

Die IPublisher-Schnittstelle verarbeitet die Veröffentlichung von Raumankern in der Cloud und ihren Abruf in späteren Sitzungen oder auf anderen Geräten. IPublisher wird hier mit der PublisherASA-Klasse implementiert. Positionsdaten im aktuellen physischen Raum werden mithilfe von Azure Spatial Anchors erfasst und abgerufen.

Wenn ein Raumanker veröffentlicht wird, wird eine Cloudanker-ID abgerufen. Diese ID kann in späteren Sitzungen oder auf anderen Geräten verwendet werden, um die Position des Cloudankers im aktuellen Koordinatensystem zusammen mit allen darin gespeicherten Eigenschaften abzurufen. Das System fügt immer eine Eigenschaft hinzu, die die zugeordnete SpacePin-Eigenschaft des Cloudankers identifiziert.

Beachten Sie, dass der IPublisher und die PublisherASA nichts über SpacePins wissen. IPublisher hat nichts mit dem zu tun, was mit den Cloudankerdaten geschieht. Er bietet eine vereinfachte zu erwartende Schnittstelle zum Veröffentlichen und Abrufen von Cloudankern.

Lesen im Vergleich zum Suchen

Wenn die ID eines Cloudankers bekannt ist, kann der Cloudanker anhand seiner ID abgerufen werden. Diese Methode ist der sicherste Weg zum Abrufen eines Cloudankers. Die Methode ist Read.

Es gibt jedoch interessante Szenarien, in denen die IDs für die Cloudanker innerhalb eines Bereichs einem Gerät nicht bekannt sind, aber wenn die Cloudanker abgerufen werden könnten, würden ihre räumlichen Daten und Eigenschaften zusammen genügend Informationen liefern, um sie nützlich zu machen.

Find durchsucht das Umfeld eines Geräts nach Cloudankern und gibt alle zurück, die identifiziert werden konnten. Dieser Prozess wird als ungefähre Standortbestimmung bezeichnet.

IBindingOracle: Freigeben von Cloudanker-IDs

Die IBindingOracle-Schnittstelle bietet eine Möglichkeit zum Persistieren und Freigeben von Bindungen zwischen SpacePins und bestimmten Cloudankern. Insbesondere werden die Space-Pin-ID/Cloudanker-ID-Paare zusammen mit dem IBinder-Namen persistiert.

Die Oracle-Schnittstelle ist äußerst einfach. Bei einem IBinder kann entweder ein Put- oder Get-Vorgang für die Bindungen des IBinder ausgeführt werden. „Put“ speichert sie, „Get“ ruft sie ab. Der Mechanismus zum Speichern und Abrufen bleibt der Implementierung der konkreten Klasse überlassen, die die IBindingOracle-Schnittstelle implementiert.

In diesem Beispiel wird möglicherweise das einfachste IBindingOracle in Form der SpacePinBinderFile-Klasse implementiert. Bei „Put“ werden die Bindungen von IBinder in eine Textdatei geschrieben. Bei „Get“ werden sie aus der Textdatei (sofern verfügbar) gelesen und in den IBinder eingespeist.

ILocalPeg : Blob, das eine Position im physischen Raum markiert

Die ILocalPeg-Schnittstelle ist eine Abstraktion eines lokalen Geräteankers. In einer perfekteren Welt würden die erforderlichen ILocalPegs intern von IPublisher verwaltet werden. Lokale Geräteanker funktionieren jedoch viel besser, wenn sie erstellt werden, während sich das Gerät in der Nähe der Position des Ankers befindet. Nur der IPublisher weiß, wo die lokalen Geräteanker platziert werden sollen, wenn sie benötigt werden, nicht zum optimalen Zeitpunkt der Erstellung.

SpacePinASA kennt den besten Zeitpunkt zum Erstellen des lokalen Ankers. Wenn die Bearbeitung des SpacePin endet und seine Position festgelegt ist, fordert SpacePinASA den IPublisher auf, an der gewünschten Position einen opaken lokalen Peg zu erstellen. Der SpacePinBinder pullt dann den ILocalPeg aus SpacePinASA und übergibt ihn zum Erstellen eines Raumankers an den IPublisher.

Weitere Informationen