Načítání obsahu systému scény – MRTK2

Všechny operace načítání obsahu jsou asynchronní a ve výchozím nastavení je veškeré načítání obsahu doplňkové. Operace načítání obsahu nikdy neovlivní scény správce a osvětlení. Informace o monitorování průběhu zatížení a aktivaci scény najdete v tématu Monitorování načítání obsahu.

Načítání obsahu

K načtení scén obsahu použijte metodu LoadContent :

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

Načítání jedné scény

Ekvivalentu zatížení jedné scény lze dosáhnout pomocí volitelného mode argumentu. LoadSceneMode.Single před pokračováním v načítání nejprve uvolní všechny načtené scény obsahu.

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

Načtení další/předchozí scény

Obsah lze načíst jednotlivě v pořadí podle indexu sestavení. To je užitečné pro ukázkové aplikace, které uživatele provedou sadou ukázkových scén jeden po druhém.

Aktuální scény v buildu v nastavení přehrávače

Všimněte si, že další nebo předchozí načtení obsahu ve výchozím nastavení používá LoadSceneMode.Single k zajištění uvolnění předchozího obsahu.

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

if (nextSceneRequested && sceneSystem.NextContentExists)
{
    await sceneSystem.LoadNextContent();
}

if (prevSceneRequested && sceneSystem.PrevContentExists)
{
    await sceneSystem.LoadPrevContent();
}

PrevContentExists vrátí hodnotu true, pokud existuje alespoň jedna scéna obsahu, která má nižší index sestavení než aktuálně načtený nejnižší index sestavení. NextContentExists vrátí hodnotu true, pokud existuje alespoň jedna scéna obsahu, která má vyšší index sestavení než aktuálně načtený nejvyšší index sestavení.

wrap Pokud je argument pravdivý, obsah se vrátí zpět do prvního nebo posledního indexu sestavení. Tím se odstraní nutnost kontrolovat další nebo předchozí obsah:

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

if (nextSceneRequested)
{
    await sceneSystem.LoadNextContent(true);
}

if (prevSceneRequested)
{
    await sceneSystem.LoadPrevContent(true);
}

Načítání podle značky

Načítání scén obsahu podle značky

Někdy je žádoucí načíst scény obsahu ve skupinách. Například fáze prostředí se může skládat z více scén, z nichž všechny musí být načteny současně, aby fungovaly. Abyste to usnadnili, můžete své scény označit a pak je načíst nebo uvolnit s touto značkou.

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

await LoadContentByTag("Stage1");

// Wait until stage 1 is complete

await UnloadContentByTag("Stage1");
await LoadContentByTag("Stage2);

Načítání pomocí značky může být užitečné také v případě, že umělci chtějí začlenit nebo odebrat prvky z prostředí, aniž by museli upravovat skripty. Například spuštění tohoto skriptu s následujícími dvěma sadami značek vede k různým výsledkům:

IMixedRealitySceneSystem sceneSystem = MixedRealityToolkit.Instance.GetService<IMixedRealitySceneSystem>();

await LoadContentByTag("Terrain");
await LoadContentByTag("Structures");
await LoadContentByTag("Vegetation");

Testování obsahu

Název scény Značka scény Načteno skriptem
DebugTerrainPhysics Terénu
Testování struktury Struktury
VegetaceNástroje Vegetace
Horské Terénu
Kabiny Struktury
Stromy Vegetace

Konečný obsah

Název scény Značka scény Načteno skriptem
DebugTerrainPhysics DoNotInclude
Testování struktury DoNotInclude
VegetaceNástroje DoNotInclude
Horské Terénu
Kabiny Struktury
Stromy Vegetace

Chování editoru

Všechny tyto operace můžete provádět v editoru a v režimu přehrávání pomocí inspektoru služby Scene System. V režimu úprav bude načtení scény okamžité, zatímco v režimu přehrávání můžete sledovat průběh načítání a používat aktivační tokeny.

Systém scény v inspektoru se zvýrazněným načítáním obsahu