Pemuatan konten sistem adegan — MRTK2
Semua operasi pemuatan konten bersifat asinkron, dan secara default semua pemuatan konten bersifat aditif. Adegan manajer dan pencahayaan tidak pernah terpengaruh oleh operasi pemuatan konten. Untuk informasi tentang memantau kemajuan beban dan aktivasi adegan, lihat Memantau Pemuatan Konten.
Memuat konten
Untuk memuat adegan konten, gunakan LoadContent
metode :
IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();
// Additively load a single content scene
await sceneSystem.LoadContent("MyContentScene");
// Additively load a set of content scenes
await sceneSystem.LoadContent(new string[] { "MyContentScene1", "MyContentScene2", "MyContentScene3" });
Pemuatan adegan tunggal
Setara dengan beban adegan tunggal dapat dicapai melalui argumen opsional mode
. LoadSceneMode.Single
pertama-tama akan membongkar semua adegan konten yang dimuat sebelum melanjutkan dengan beban.
IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();
// ContentScene1, ContentScene2 and ContentScene3 will be loaded additively
await sceneSystem.LoadContent("ContentScene1");
await sceneSystem.LoadContent("ContentScene2");
await sceneSystem.LoadContent("ContentScene3");
// ContentScene1, ContentScene2 and ContentScene3 will be unloaded
// SingleContentScene will be loaded additively
await sceneSystem.LoadContent("SingleContentScene", LoadSceneMode.Single);
Pemuatan adegan berikutnya / sebelumnya
Konten dapat dimuat secara senyap dalam urutan indeks build. Ini berguna untuk aplikasi showcase yang membawa pengguna melalui serangkaian adegan demonstrasi satu per satu.
Perhatikan bahwa pemuatan konten berikutnya/sebelumnya menggunakan LoadSceneMode.Single secara default untuk memastikan bahwa konten sebelumnya dibongkar.
IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();
if (nextSceneRequested && sceneSystem.NextContentExists)
{
await sceneSystem.LoadNextContent();
}
if (prevSceneRequested && sceneSystem.PrevContentExists)
{
await sceneSystem.LoadPrevContent();
}
PrevContentExists
akan mengembalikan true jika setidaknya ada satu adegan konten yang memiliki indeks build yang lebih rendah daripada indeks build terendah yang saat ini dimuat. NextContentExists
akan mengembalikan true jika setidaknya ada satu adegan konten yang memiliki indeks build yang lebih tinggi daripada indeks build tertinggi yang saat ini dimuat.
wrap
Jika argumennya benar, konten akan mengulang kembali ke indeks build pertama/terakhir. Ini menghapus kebutuhan untuk memeriksa konten berikutnya / sebelumnya:
IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();
if (nextSceneRequested)
{
await sceneSystem.LoadNextContent(true);
}
if (prevSceneRequested)
{
await sceneSystem.LoadPrevContent(true);
}
Memuat menurut tag
Terkadang diinginkan untuk memuat adegan konten dalam grup. Misalnya, tahap pengalaman dapat terdiri dari beberapa adegan, yang semuanya harus dimuat secara bersamaan agar berfungsi. Untuk memfasilitasi ini, Anda dapat menandai adegan Anda lalu memuatnya atau membongkarnya dengan tag tersebut.
IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();
await LoadContentByTag("Stage1");
// Wait until stage 1 is complete
await UnloadContentByTag("Stage1");
await LoadContentByTag("Stage2);
Memuat menurut tag juga dapat berguna jika artis ingin menggabungkan/ menghapus elemen dari pengalaman tanpa harus memodifikasi skrip. Misalnya, menjalankan skrip ini dengan dua set tag berikut menghasilkan hasil yang berbeda:
IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();
await LoadContentByTag("Terrain");
await LoadContentByTag("Structures");
await LoadContentByTag("Vegetation");
Menguji konten
Nama Adegan | Tag Adegan | Dimuat oleh skrip |
---|---|---|
DebugTerrainPhysics | Medan | • |
StructureTesting | Struktur | • |
VegetationTools | Vegetasi | • |
Gunung | Medan | • |
Kabin | Struktur | • |
Pohon | Vegetasi | • |
Konten akhir
Nama Adegan | Tag Adegan | Dimuat oleh skrip |
---|---|---|
DebugTerrainPhysics | DoNotInclude | |
StructureTesting | DoNotInclude | |
VegetationTools | DoNotInclude | |
Gunung | Medan | • |
Kabin | Struktur | • |
Pohon | Vegetasi | • |
Perilaku editor
Anda dapat melakukan semua operasi ini di editor dan dalam mode putar dengan menggunakan pemeriksa layanan Sistem Adegan. Dalam pemuatan adegan mode edit akan seketika, sementara dalam mode putar Anda dapat mengamati kemajuan pemuatan dan menggunakan token aktivasi.