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.

Current scenes in build in player settings

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

Loading content scenes by 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.

Scene system in the inspector with content loading highlighted