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. Hanterings- och belysningsscener påverkas aldrig av innehållsinläsningsåtgärder. Information om övervakning av inläsningsframsteg 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" });

Enkel sceninläsning

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 demonstrera program som tar användare genom en uppsättning demonstrationsscener en i taget.

Aktuella scener i skapa i spelarinställningar

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.

wrap Om argumentet är sant loopar innehållet tillbaka till det första/sista byggindexet. Detta eliminerar 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

Läsa in innehållsscener efter tagg

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 av 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 Inläst av skript
DebugTerrainPhysics Terräng
StructureTesting Strukturer
VegetationVerktyg Vegetation
Berg Terräng
Stuga Strukturer
Träd Vegetation

Slutligt innehåll

Scennamn Scentagg Inläst av skript
DebugTerrainPhysics DoNotInclude
StructureTesting DoNotInclude
VegetationVerktyg 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 omedelbara, medan du i uppspelningsläge kan observera inläsningsförloppet och använda aktiveringstoken.

Scensystem i inspektören med innehållsinläsning markerat