Persistenz in Unity

Namespace:UnityEngine.XR.WSA.Persistence
Klasse:WorldAnchorStore

WorldAnchorStore ist der Schlüssel zum Erstellen holografischer Erfahrungen, bei denen Hologramme in bestimmten realen Positionen über Instanzen der Anwendung hinweg bleiben. Benutzer können dann einzelne Hologramme anheften, wo sie möchten, und sie später an derselben Stelle bei vielen Verwendungen Ihrer App finden.

Beibehalten von Hologrammen zwischen Sitzungen

Mit WorldAnchorStore können Sie den Speicherort von WorldAnchor sitzungsübergreifend beibehalten. Um Hologramme tatsächlich sitzungsübergreifend zu erhalten, müssen Sie Ihre GameObjects, die einen bestimmten Weltanker verwenden, separat nachverfolgen. Es ist oft sinnvoll, eine GameObject-Stamm-Instanz mit einem Weltanker zu erstellen und von ihr ankernde hologramme mit einem lokalen Positionsoffset zu verankern.

So laden Sie Hologramme aus vorherigen Sitzungen:

  1. WorldAnchorStore herunterladen
  2. Laden von App-Daten im Zusammenhang mit dem Weltanker, der Ihnen die ID des Weltankers gibt
  3. Laden eines Weltankers aus seiner ID

So speichern Sie Hologramme für zukünftige Sitzungen:

  1. WorldAnchorStore herunterladen
  2. Speichern eines Weltankers unter Angabe einer ID
  3. Speichern von App-Daten im Zusammenhang mit dem Weltanker zusammen mit einer ID

Abrufen des WorldAnchorStore

Sie sollten einen Verweis auf den WorldAnchorStore behalten, damit Sie wissen, wann er bereit ist, einen Vorgang durchzuführen. Da es sich um einen asynchronen Aufruf handelt, möchten Sie möglicherweise kurz nach dem Start Aufrufen von:

WorldAnchorStore.GetAsync(StoreLoaded);

StoreLoaded ist in diesem Fall unser Handler für den Fall, dass der WorldAnchorStore das Laden abgeschlossen hat:

private void StoreLoaded(WorldAnchorStore store)
{
       this.store = store;
}

Wir verfügen nun über einen Verweis auf den WorldAnchorStore, den wir zum Speichern und Laden bestimmter World Anchors verwenden.

Speichern eines WorldAnchor

Um zu speichern, müssen wir einfach benennen, was wir speichern, und es an den WorldAnchor übergeben, den wir zuvor beim Speichern hatten. Hinweis: Beim Versuch, zwei Anker in derselben Zeichenfolge zu speichern, ist ein Fehler (Speicher. "Speichern" gibt "false" zurück. Löschen Sie den vorherigen Speicher, bevor Sie den neuen speichern:

private void SaveGame()
{
       // Save data about holograms positioned by this world anchor
       if (!this.savedRoot) // Only Save the root once
       {
              this.savedRoot = this.store.Save("rootGameObject", anchor);
              Assert(this.savedRoot);
       }
}

Laden eines WorldAnchor

Und laden:

private void LoadGame()
{
       // Save data about holograms positioned by this world anchor
       this.savedRoot = this.store.Load("rootGameObject", rootGameObject);
       if (!this.savedRoot)
       {
              // We didn't actually have the game root saved! We have to re-place our objects or start over
       }
}

Darüber hinaus können wir store verwenden. Delete(), um einen Zuvor gespeicherten und gespeicherten Anker zu entfernen. Clear(), um alle zuvor gespeicherten Daten zu entfernen.

Aufzählen vorhandener Anker

Rufen Sie GetAllIds auf, um zuvor gespeicherte Anker zu finden.

string[] ids = this.store.GetAllIds();
for (int index = 0; index < ids.Length; index++)
{
        Debug.Log(ids[index]);
}

Beibehalten von Hologrammen für mehrere Geräte

Sie können Azure Spatial Anchors verwenden, um einen permanenten Cloudanker aus einem lokalen WorldAnchor zu erstellen, den Ihre App dann auf mehreren HoloLens-, iOS- und Android-Geräten finden kann, auch wenn diese Geräte nicht gleichzeitig vorhanden sind. Da Cloudanker persistent sind, können mehrere Geräte im Laufe der Zeit Inhalte sehen, die relativ zu diesem Anker am gleichen physischen Ort gerendert werden.

Probieren Sie die fünfminütigen Schnellstartanleitungen zu Azure Spatial Anchors Unity aus, um mit dem Erstellen gemeinsamer Erfahrungen in Unity zu beginnen.

Sobald Sie azure Spatial Anchors haben, können Sie Anker in Unity erstellen und suchen.

Nächster Entwicklungsprüfpunkt

Wenn Sie die von uns 2017 an den Unity-Entwicklungsprüfpunkt 2017 2016 2016 2016 durchgeführte Entwicklung mithilfe von Prüfpunkten durchdrungen haben, sind Sie gerade dabei, die Mixed Reality Bausteine zu erkunden. Von hier aus können Sie mit dem nächsten Baustein fortfahren:

Oder fahren Sie mit den Funktionen und APIs der Mixed Reality-Plattform fort:

Sie können jederzeit zu den Prüfpunkten für die Unity-Entwicklung zurückkehren.

Weitere Informationen