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:
WorldAnchorStore
Dapatkan .- Muat data aplikasi jangkar dunia, yang memberi Anda ID jangkar dunia.
- Muat jangkar dunia dengan ID-nya.
Untuk menyimpan hologram untuk sesi mendatang:
WorldAnchorStore
Dapatkan .- Simpan jangkar dunia, menentukan ID.
- 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: