Verktyg och visualiserare
Verktygen och visualiseringarna i namnområdet Microsoft.MixedReality.WorldLocking.Tools är avsedda att hjälpa till under utvecklingen. De kan också vara en startpunkt för avancerad direkt interaktion med WLT-systemet (World Locking Tools).
Även om de inte är avsedda för direkt användning som i ett program, kan programutvecklaren välja att göra det.
WorldLocking.Core är avsedd att fungera som den är i alla lämpliga programscenarion. Verktygen kan dock göra antaganden om programmet. Dessa antaganden kan göra dem olämpliga i vissa situationer.
Innan du införlivar något av verktygen direkt i ditt leveransprogram bör du överväga att skapa en version av verktyget som är anpassad för dina egna krav och resurser.
Verktyg
Justeringsanordningar
Justerare är komponenter som hanterar omanpassningshändelser. I synnerhet skapar de bifogade filer. I händelse av en omanpassningsåtgärd fungerar AttachmentPoint som ett återanrop av meddelanden. Justeraren hanterar händelsen på rätt sätt.
Se ytterligare konceptuell diskussion om AttachmentPoints.
Den exakta rätta reaktionen på en omanpassningshändelse varierar för olika typer av objekt och är mycket programspecifik. Om objektets fragment till exempel för närvarande är inaktivt ska objektet visas? För vissa program, eftersom det inte går att fastställa korrekt placering av objektet, bör det vara dolt. För andra program kan det vara bättre att visa objektet i en tillfälligt felaktig pose än att drabbas av förvirringen i dess försvinnande. Och även för program som ska dölja objektet finns det olika sätt att dölja (till exempel inaktivera jämfört med att flytta långt borta).
Komponenterna AdjusterFixed och AdjusterMoving hanterar två vanliga scenarier minimalt.
Komponenten AdjusterFixed förutsätter att dess mål vanligtvis inte rör sig. Om World Locking Tools skickar en justeringsposition på grund av en omanpassningshändelse är den avsedd att hålla AdjusterFixeds objekt stillastående i världen.
Däremot förutsätter komponenten AdjusterMoving att dess mål är mobilt via Unity-koordinatutrymmet. Det håller World Locking Tools-systemet utvärderat av målets plats, så att systemet i händelse av en omanpassningsåtgärd kan ge den mest exakta korrigeringen för att hålla målets position i förhållande till den fysiska världen konstant vid den tidpunkten.
Adaptrar
Adapterkomponenterna är endast avsedda för bild. Om du använder någon av korten bör du förmodligen tänka om när du försöker använda World Locking Tools.
I synnerhet har MRTK redan inbyggda kort, så ingen ytterligare koordinatsystemtransformering krävs för programmets del.
Det kan finnas tillfällen, särskilt om du inte använder MRTK, när konvertering från interna resurser, som kommer att rapportera i Spongy Space-koordinater, till Frozen Space. I dessa fall kan programutvecklaren hitta något av de kort som ingår här som en bra referens.
WorldAnchorAdapter – En WorldAnchor justerar ett objekts pose i Spongy-utrymmet för att förbli fast i fysiskt utrymme. Detta är redundant med det världslåsta utrymmet som tillhandahålls av World Locking Tools, så objektet kommer att glida i Frozen Space. Med det här adaptern kan en WorldAnchor underhålla ett objekts pose i Frozen Space. Detta är onödigt förutom diagnostik. Alla objekt i Unitys globala koordinatutrymme är världslåst av World Locking Tools.
ToggleWorldAnchor – liknar WorldAnchorAdapter, men kan växlas. Konverteras också automatiskt till vanligt WorldAnchor-beteende när WorldLockingManager är inaktiverad. Endast användbart för diagnostik.
FrozenSpatialMapping – Ett kort hanterar och återger resultatet från en SurfaceObserver på rätt sätt. MRTK Spatial Awareness-systemet tillhandahåller alla dessa funktioner och mer, och kräver ingen adapter för att fungera med World Locking Tools.
FrozenTapToAdd – Direkt koppling till Unitys indatasystem kräver konvertering av inkommande koordinatdata som visas här. Detta är onödigt med MRTK:s indatasystem.
Visualiserare
Visualisering av fästpunktsdiagram
AnchorGraphVisual och dess associerade prefab är kärnan i de tillhandahållna visualiseringarna. Komponentdelarna är följande:
Axlar – Aktuella poser för ursprunget till Spongy Space (grönt) och Fruset utrymme (blått) visas som standard 3-pilaxelidentifierare.
Spongy Anchors – Dessa är de ursprungliga underliggande fästpunkterna som har skapats för att mata frozen world engine-optimeringen. Var och en representeras av en ring, tillsammans med en texttagg som identifierar den. Dessutom förmedlas mer information med färg och storlek.
Ett aktivt spårat fästpunkt är grönt.
Ett spårat fästpunkt med noll relevans blir rött.
Ett fästpunkt som inte stöds är gult.
Ju större ring, desto större relevans för fästpunkten.
Frozen Anchors – det här är motsvarande referenspunkter i Frozen Space. I avsaknad av trackerfel är dessa exakt anpassade till Spongy Anchors.
Spongy-Frozen Kanter - Dessa ansluter Spongy Anchors till deras motsvarande frysta fästpunkter. Eftersom det i avsaknad av spårningsfel skulle vara en tillfällighet, innebär det att inte se dessa kanter innebär att allt fungerar perfekt. I vilket fall som helst bör dessa kanter inte vara längre än några centimeter. De är röda på den frusna änden. Färgen tonas till blå på den svampiga änden.
Fästkanter – Dessa tunna blågrå linjer visar anslutningarna mellan Spongy Anchors i fästpunktsdiagrammet.
Om du aktiverar visningen av fästpunktsdiagrammet som World Locking Tools genererar när användaren rör sig i den fysiska miljön måste endast WorldLockingTools > Prefabs > AnchorGraphVisual-prefab tas med i scenen. Den läggs vanligtvis till som ett syskon till WorldLockingContext, men den exakta placeringen i hierarkin är oviktig. Den bör dock inte placeras i kamerahierarkin.
De rumsliga fästpunkter som WLT skapar och använder internt skapas vid kamerans position. Eftersom det är förvirrande att gå genom ett fält med fästpunktsvisualiseringar på ögonnivå, visar systemet dem som standard 1 meter ner från sin sanna position. Om du vill se fästpunktsvisualiseringarna vid de faktiska fästpunktspositionerna anger du parametern Lodrät förskjutning för den visuella anchor Graph-komponenten till noll.
Ytterligare utdata
World Locking Examples innehåller textdiagnostik. De flesta av dessa är endast relevanta för utvecklare av World Locking Tools, snarare än klienter med dess förmågor. De är dock tillgängliga för läsning och, som visas i Skriptet StatusToText , för realtidsvisning.
För postmortemanalys kan avsnittet Diagnostik i WorldLockingContext vara mycket användbart när du rapporterar fel med Frozen World Engine. Mer information finns i Rapportera en bugg .