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