Persistência em versões mais antigas do Unity

Quando possível, use o World Locking Tools em vez de WorldAnchorStore para o bloqueio de mundo persistente. Para o Unity 2019/2020 com OpenXR ou o plug-in Windows XR, use ARAnchorManager. Para obter mais informações, consulte Escolher sua abordagem de bloqueio do mundo.

Este artigo descreve como usar a persistência do WorldAnchorStore holograma em versões mais antigas do Unity ou projetos WSA.

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

O recurso de persistência no Unity cria experiências holográficas em que os hologramas permanecem em posições específicas do mundo real em instâncias de aplicativo. Os usuários podem fixar hologramas individuais onde quiserem e encontrá-los no mesmo local em muitas sessões de aplicativo.

Persistir hologramas em sessões

Permite WorldAnchorStore que você persista o local das âncoras do mundo entre as sessões. Para persistir hologramas em sessões, mantenha o controle separado desse uso de GameObjects uma âncora de mundo específica. Você pode criar uma GameObject raiz com uma âncora de mundo e ancorar hologramas filho com um deslocamento de posição local.

Para carregar hologramas de sessões anteriores:

  1. Obter o WorldAnchorStore.
  2. Carregue dados de aplicativo de âncora do mundo, o que fornece a ID da âncora mundial.
  3. Carregue a âncora do mundo por sua ID.

Para salvar hologramas para sessões futuras:

  1. Obter o WorldAnchorStore.
  2. Salve uma âncora do mundo, especificando uma ID.
  3. Salve os dados do aplicativo relacionados à âncora do mundo junto com a ID.

Obter o WorldAnchorStore

Mantenha uma referência ao , para WorldAnchorStoreque você saiba quando ele está pronto para executar uma operação. Como essa chamada é assíncrona, assim que o aplicativo é iniciado, você pode chamar:

WorldAnchorStore.GetAsync(StoreLoaded);

StoreLoaded é o manipulador quando o WorldAnchorStore carregamento é concluído:

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

Agora você tem uma referência ao WorldAnchorStore, que você pode usar para salvar e carregar âncoras de mundo específicas.

Salvar uma âncora do mundo

Para salvar uma âncora mundial, nomeie a âncora do mundo e passe-a WorldAnchorStore no que você tem antes. Se você tentar salvar duas âncoras na mesma cadeia de caracteres, store.Save retornará false. Exclua o salvamento anterior antes de salvar um novo.

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);
       }
}

Carregar uma âncora do mundo

Para carregar uma âncora do mundo:

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.
       }
}

Você também pode usar store.Delete() para remover uma âncora salva anteriormente e store.Clear() remover todos os dados salvos anteriormente.

Enumerar âncoras existentes

Para listar âncoras armazenadas, chame GetAllIds.

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

Persistir hologramas para vários dispositivos

Você pode usar âncoras espaciais do Azure para criar uma âncora de nuvem durável de uma âncora do mundo local. Seu aplicativo pode localizar a âncora de nuvem em vários dispositivos HoloLens, iOS e Android, mesmo que os dispositivos não estejam juntos ao mesmo tempo. Como as âncoras de nuvem são persistentes, vários dispositivos podem ver o conteúdo renderizado em relação a essa âncora no mesmo local físico ao longo do tempo.

Para começar a criar experiências compartilhadas no Unity, experimente os guias de início rápido do Azure Spatial Anchors Unity de cinco minutos. Depois de estar em execução com âncoras espaciais do Azure, você poderá criar e localizar âncoras no Unity.

Outros pontos de verificação de desenvolvimento

Continue com os pontos de verificação de desenvolvimento do Unity.

Explore outros Realidade Misturada blocos de construção principais:

Comece a explorar os recursos e APIs da plataforma Realidade Misturada:

Confira também