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