Lokale Raumanker in UnrealLocal Spatial Anchors in Unreal

Raumanker speichern Hologramme im realen Raum zwischen Anwendungssitzungen als ARPin.Spatial anchors save holograms in real-world space between application sessions as ARPin s. Sobald ARPins im Ankerspeicher von HoloLens gespeichert sind, können sie in zukünftigen Sitzungen geladen werden und stellen eine ideale Fallbackoption dar, wenn keine Internetverbindung besteht.Once saved in the HoloLens' anchor store, ARPin's can be loaded in future sessions and are an ideal fallback option when there's no internet connectivity.

Hinweis

Ankerfunktionen aus UE 4.25 sind in 4.26 veraltet und sollten durch neuere ersetzt werden.Anchor functions from UE 4.25 are obsolete in 4.26 and should be replaced with newer ones.

Wichtig

Lokale Anker werden auf dem Gerät gespeichert, während Azure-Raumanker in der Cloud gespeichert werden.Local anchors are stored on device, while Azure Spatial Anchors are stored in the cloud. Wenn Sie Azure Cloud Services zum Speichern Ihrer Anker verwenden möchten, verfügen wir über ein Dokument, in dem Sie durch den Integrationsprozess für Azure-Raumanker geführt werden.If you're looking to use Azure cloud services to store your anchors, we have a document that can walk you through integrating Azure Spatial Anchors. Beachten Sie, dass Sie sowohl lokale als auch Azure-Anker im selben Projekt haben können, ohne dass Konflikte auftreten.Note that you can have local and Azure anchors in the same project without conflict.

Überprüfen des AnkerspeichersChecking the anchor store

Vor dem Speichern oder Laden von Ankern müssen Sie sich zunächst vergewissern, dass der Ankerspeicher bereit ist.Before saving or loading anchors, you need to check if the anchor store is ready. Versuche, eine der HoloLens-Ankerfunktionen aufzurufen, bevor der Ankerspeicher bereit ist, sind nicht erfolgreich.Calling any of the HoloLens anchor functions before the anchor store is ready won't succeed.

Speichern von AnkernSaving anchors

Sobald die Anwendung über eine Komponente verfügt, die Sie in der Umgebung fixieren müssen, kann sie wie folgt im Ankerspeicher gespeichert werden:Once the application has a component you need to pin to the world, it can be saved to the anchor store with the following sequence:

Das heißt im Einzelnen:Breaking this down:

  1. Erzeugen Sie einen Akteur an einer bekannten Position.Spawn an actor at a known location.

  2. Erstellen Sie einen ARPin mit dieser Position und einem Namen, der auf der Klasse des Akteurs basiert.Create an ARPin with that location and a name based on the actor’s class.

  3. Fügen Sie dem ARPin den Akteur hinzu, und speichern Sie den Pin im HoloLens-Ankerspeicher.Add the actor to the ARPin and save the pin to the HoloLens anchor store.

    • Der gewählte Ankername muss eindeutig sein, in diesem Fall verwenden wir dafür den aktuellen Zeitstempel.The anchor name you choose must be unique, which in this example is the current timestamp.
  4. Wenn der Anker erfolgreich im Ankerspeicher gespeichert wurde, kann er im HoloLens-Geräteportal unter System > Map manager > Anchor Files Saved On Device (System > Zuordnungs-Manager > Auf dem Gerät gespeicherte Ankerdateien) angezeigt werden.If the anchor is successfully saved to the anchor store, you can see it in the HoloLens device portal under System > Map manager > Anchor Files Saved On Device.

Laden von AnkernLoading anchors

Beim Start einer Anwendung können Sie die folgende Blaupause verwenden, um Komponenten an ihren Ankerpositionen wiederherzustellen:When an application starts, you can use the following blueprint to restore components to their anchor locations:

Das heißt im Einzelnen:Breaking this down:

  1. Iterieren Sie über alle Anker im Ankerspeicher.Iterate over all of the anchors in the anchor store.

  2. Erzeugen Sie einen Akteur an einem neutralen Element.Spawn an actor at identity.

  3. Heften Sie diesen Akteur an den ARPin aus dem Ankerspeicher an.Pin that actor to the ARPin from the anchor store.

    • Es ist wichtig, den Akteur am neutralen Element zu erzeugen, da der Anker dazu dient, das Hologramm in der Umgebung auf der Grundlage des gespeicherten Orts zu positionieren.It's important to spawn the actor at identity since the anchor is responsible for repositioning the hologram in the world based on where it was saved. Jede hier hinzugefügte Transformation fügt dem Anker einen Offset hinzu.Any transform added here will add an offset to the anchor.

Die Anker-ID wird ebenfalls abgefragt, um abhängig vom gespeicherten Namen des Ankers unterschiedliche Akteure erzeugen zu können.The anchor ID is also queried so that different actors can be spawned depending on the anchor’s saved name.

Entfernen von AnkernRemoving anchors

Wenn Sie die Arbeit mit einem Anker beendet haben, können Sie einzelne Anker oder den gesamten Ankerspeicher mit den Komponenten Remove ARPin from WMRAnchor Store (ARPin aus WMRAnkerspeicher entfernen) und Remove All ARPins from WMRAnchor Store (Alle ARPins aus WMRAnkerspeicher entfernen) löschen.When you're done with an anchor, you can clear individual anchors or the entire anchor store with the Remove ARPin from WMRAnchor Store and Remove All ARPins from WMRAnchor Store components.

Hinweis

Beachten Sie, dass Raumanker sich noch in der Betaphase befinden, prüfen Sie also unbedingt auf aktualisierte Informationen und Features.Bear in mind that Spatial Anchors are still in Beta, so be sure to check back for updated information and features.

Nächster EntwicklungsprüfpunktNext Development Checkpoint

Wenn Sie der Unreal-Entwicklungs-Journey folgen, die wir entworfen haben, befinden Sie sich mitten im Kennenlernen der MRTK-Grundbausteine.If you're following the Unreal development journey we've laid out, you're in the midst of exploring the MRTK core building blocks. Von hier aus können Sie mit dem nächsten Baustein fortfahren:From here, you can continue to the next building block:

Oder fahren Sie mit den Funktionen und APIs der Mixed Reality-Plattform fort:Or jump to Mixed Reality platform capabilities and APIs:

Sie können jederzeit zu den Prüfpunkten für die Unreal-Entwicklung zurückkehren.You can always go back to the Unreal development checkpoints at any time.

Siehe auchSee also