Persistensi dalam versi Unity yang lebih lama

Jika memungkinkan, gunakan Alat Penguncian Dunia alih-alih WorldAnchorStore untuk penguncian dunia persisten. Untuk Unity 2019/2020 dengan OpenXR atau plugin XR Windows, gunakan ARAnchorManager. Untuk informasi selengkapnya, lihat Memilih pendekatan penguncian dunia Anda.

Artikel ini menjelaskan cara menggunakan WorldAnchorStore untuk persistensi hologram dalam versi Unity yang lebih lama atau proyek WSA.

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

Fitur persistensi di Unity menciptakan pengalaman holografik di mana hologram tetap berada di posisi dunia nyata tertentu di seluruh instans aplikasi. Pengguna dapat menyematkan hologram individual di mana pun mereka inginkan, dan menemukannya di tempat yang sama di banyak sesi aplikasi.

Mempertahankan hologram di seluruh sesi

memungkinkan WorldAnchorStore Anda mempertahankan lokasi jangkar dunia di seluruh sesi. Untuk mempertahankan hologram di seluruh sesi, lacak secara GameObjects terpisah yang menggunakan jangkar dunia tertentu. Anda dapat membuat akar GameObject dengan jangkar dunia, dan jangkar hologram anak dengannya dengan offset posisi lokal.

Untuk memuat hologram dari sesi sebelumnya:

  1. WorldAnchorStoreDapatkan .
  2. Muat data aplikasi jangkar dunia, yang memberi Anda ID jangkar dunia.
  3. Muat jangkar dunia dengan ID-nya.

Untuk menyimpan hologram untuk sesi mendatang:

  1. WorldAnchorStoreDapatkan .
  2. Simpan jangkar dunia, menentukan ID.
  3. Simpan data aplikasi yang terkait dengan jangkar dunia bersama dengan ID.

Dapatkan WorldAnchorStore

Simpan referensi ke WorldAnchorStore, sehingga Anda tahu kapan siap untuk melakukan operasi. Karena panggilan ini tidak sinkron, segera setelah aplikasi dimulai, Anda dapat memanggil:

WorldAnchorStore.GetAsync(StoreLoaded);

StoreLoaded adalah handler ketika WorldAnchorStore selesai memuat:

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

Anda sekarang memiliki referensi ke WorldAnchorStore, yang dapat Anda gunakan untuk menyimpan dan memuat jangkar dunia tertentu.

Selamatkan jangkar dunia

Untuk menyelamatkan jangkar dunia, beri nama jangkar dunia dan berikan pada yang WorldAnchorStore Kau punya sebelumnya. Jika Anda mencoba menyimpan dua jangkar ke string yang sama, store.Save mengembalikan false. Hapus penyimpanan sebelumnya sebelum menyimpan yang baru.

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

Memuat jangkar dunia

Untuk memuat jangkar dunia:

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

Anda juga dapat menggunakan store.Delete() untuk menghapus jangkar yang sebelumnya Anda simpan, dan store.Clear() untuk menghapus semua data yang disimpan sebelumnya.

Menghitung jangkar yang ada

Untuk mencantumkan jangkar tersimpan, panggil GetAllIds.

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

Mempertahankan hologram untuk beberapa perangkat

Anda dapat menggunakan Azure Spatial Anchors untuk membuat jangkar cloud tahan lama dari jangkar dunia lokal. Aplikasi Anda dapat menemukan jangkar cloud di beberapa perangkat HoloLens, iOS, dan Android, meskipun perangkat tidak bersamaan secara bersamaan. Karena jangkar cloud persisten, beberapa perangkat dapat melihat konten yang dirender relatif terhadap jangkar tersebut di lokasi fisik yang sama dari waktu ke waktu.

Untuk mulai membangun pengalaman bersama di Unity, cobalah mulai cepat Azure Spatial Anchors Unity lima menit. Setelah aktif dan berjalan dengan Azure Spatial Anchors, Anda dapat membuat dan menemukan jangkar di Unity.

Titik pemeriksaan pengembangan lainnya

Lanjutkan dengan titik pemeriksaan pengembangan Unity.

Jelajahi blok penyusun inti Mixed Reality lainnya:

Mulai jelajahi kemampuan platform dan API Mixed Reality:

Lihat juga