Innehållsinläsning av scensystem – MRTK2

Alla åtgärder för innehållsinläsning är asynkrona och som standard är all innehållsinläsning additiv. Chef- och belysningsscener påverkas aldrig av innehållsinläsningsåtgärder. Information om övervakning av belastningsstatus och scenaktivering finns i Övervaka innehållsinläsning.

Läser in innehåll

Om du vill läsa in innehållsscener använder du LoadContent metoden:

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

Inläsning av en enda scen

Motsvarigheten till en enskild scenbelastning kan uppnås via det valfria mode argumentet. LoadSceneMode.Single tar först bort alla inlästa innehållsscener innan du fortsätter med belastningen.

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

Nästa/föregående sceninläsning

Innehållet kan läsas in i ordning efter byggindex. Detta är användbart för att visa upp program som tar användare genom en uppsättning demonstrationsscener en i taget.

Current scenes in build in player settings

Observera att nästa/föregående innehållsinläsning använder LoadSceneMode.Single som standard för att säkerställa att det tidigare innehållet tas bort.

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

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

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

PrevContentExists returnerar sant om det finns minst en innehållsscen som har ett lägre byggindex än det lägsta byggindex som för närvarande läses in. NextContentExists returnerar sant om det finns minst en innehållsscen som har ett högre byggindex än det högsta byggindex som för närvarande läses in.

Om argumentet wrap är sant loopar innehållet tillbaka till det första/sista byggindexet. Detta tar bort behovet av att söka efter nästa/föregående innehåll:

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

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

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

Läser in efter tagg

Loading content scenes by tag

Ibland är det önskvärt att läsa in innehållsscener i grupper. Till exempel kan en fas i en upplevelse bestå av flera scener, som alla måste läsas in samtidigt för att fungera. För att underlätta detta kan du tagga dina scener och sedan läsa in dem eller ta bort dem med den taggen.

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

await LoadContentByTag("Stage1");

// Wait until stage 1 is complete

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

Inläsning med tagg kan också vara användbart om konstnärer vill införliva/ta bort element från en upplevelse utan att behöva ändra skript. Om du till exempel kör det här skriptet med följande två uppsättningar taggar får du olika resultat:

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

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

Testa innehåll

Scennamn Scentagg Läses in med skript
DebugTerrainPhysics Terräng
StructureTesting Strukturer
VegetationTools Vegetation
Berg Terräng
Stuga Strukturer
Träd Vegetation

Slutligt innehåll

Scennamn Scentagg Läses in med skript
DebugTerrainPhysics DoNotInclude
StructureTesting DoNotInclude
VegetationTools DoNotInclude
Berg Terräng
Stuga Strukturer
Träd Vegetation

Redigerarens beteende

Du kan utföra alla dessa åtgärder i redigeringsprogrammet och i uppspelningsläge med hjälp av scensystemets tjänstkontroll. Scenbelastningar i redigeringsläge kommer att vara omedelbart, medan du i uppspelningsläge kan observera inläsningsförloppet och använda aktiveringstoken.

Scene system in the inspector with content loading highlighted