Persistentie in oudere Unity-versies

Gebruik indien mogelijk World Locking Tools in plaats van WorldAnchorStore voor permanente wereldvergrendeling. Gebruik voor Unity 2019/2020 met OpenXR of de Windows XR-invoegtoepassingARAnchorManager. Zie Kies uw wereldvergrendelingsbenadering voor meer informatie.

In dit artikel wordt beschreven hoe u de WorldAnchorStore voor hologrampersistentie gebruikt in oudere Unity-versies of WSA-projecten.

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

De persistentiefunctie in Unity creƫert holografische ervaringen waarbij hologrammen zich in specifieke echte posities bevinden in toepassingsexemplaren. Gebruikers kunnen afzonderlijke hologrammen vastmaken waar ze maar willen en ze vinden op dezelfde plek via veel app-sessies.

Hologrammen behouden tussen sessies

Hiermee WorldAnchorStore kunt u de locatie van wereldankeren tussen sessies behouden. Als u hologrammen tussen sessies wilt behouden, houdt u een afzonderlijk overzicht van dat gebruik van GameObjects een bepaald wereldanker. U kunt een GameObject hoofdmap maken met een wereldanker en onderliggende hologrammen van ankers door deze te koppelen met een verschuiving van de lokale positie.

Hologrammen uit eerdere sessies laden:

  1. Haal de WorldAnchorStore.
  2. Laad gegevens van de world anchor-app, waarmee u de id van het wereldanker krijgt.
  3. Laad het wereldanker met de id.

Hologrammen opslaan voor toekomstige sessies:

  1. Haal de WorldAnchorStore.
  2. Sla een wereldanker op en geef een id op.
  3. Sla app-gegevens met betrekking tot het wereldanker samen met de id op.

De WorldAnchorStore downloaden

Houd een verwijzing naar de WorldAnchorStore, zodat u weet wanneer deze klaar is om een bewerking uit te voeren. Aangezien deze aanroep asynchroon is, kunt u bellen zodra de app wordt gestart:

WorldAnchorStore.GetAsync(StoreLoaded);

StoreLoaded is de handler wanneer het WorldAnchorStore laden is voltooid:

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

U hebt nu een verwijzing naar de WorldAnchorStore, die u kunt gebruiken om specifieke wereldankeren op te slaan en te laden.

Een wereldanker redden

Als u een wereldanker wilt redden, noemt u het wereldanker en geeft u het door in de WorldAnchorStore eerder verkregen. Als u probeert twee ankers op te slaan in dezelfde tekenreeks, store.Save wordt onwaar geretourneerd. Verwijder de vorige opslag voordat u een nieuwe opslaat.

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

Een wereldanker laden

Een wereldanker laden:

private void LoadGame()
{
       // Saved data about holograms that this world anchor positions:
       this.savedRoot = this.store.Load("rootGameObject", rootGameObject);
       if (!this.savedRoot)
       {
              // Game root not saved. Re-place objects or start over.
       }
}

U kunt ook store.Delete() een anker verwijderen dat u eerder hebt opgeslagen en store.Clear() om alle eerder opgeslagen gegevens te verwijderen.

Bestaande ankers inventariseren

Als u opgeslagen ankers wilt weergeven, roept u aan GetAllIds.

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

Hologrammen voor meerdere apparaten behouden

U kunt Azure Spatial Anchors gebruiken om een duurzaam cloudanker te maken van een lokaal wereldanker. Uw app kan het cloudanker vinden op meerdere HoloLens, iOS en Android apparaten, zelfs als de apparaten niet tegelijk zijn. Omdat cloudankeren permanent zijn, kunnen meerdere apparaten inhoud zien die in de loop van de tijd wordt weergegeven ten opzichte van dat anker op dezelfde fysieke locatie.

Probeer de quickstarts voor Azure Spatial Anchors Unity om gedeelde ervaringen te bouwen in Unity. Zodra u aan de slag bent met Azure Spatial Anchors, kunt u ankers maken en zoeken in Unity.

Andere controlepunten voor ontwikkeling

Ga verder met de Unity-ontwikkelingscontrolepunten.

Bekijk andere Mixed Reality kernbouwstenen:

Startmenu de Mixed Reality platformmogelijkheden en API's verkennen:

Zie ook