Hulpprogramma's en visuals

De hulpprogramma's en visualizers in de naamruimte Microsoft.MixedReality.WorldLocking.Tools zijn bedoeld om te helpen tijdens de ontwikkeling. Ze kunnen ook een startpunt zijn voor geavanceerde directe interactie met het WLT-systeem (World Locking Tools).

Hoewel ze niet zijn bedoeld voor direct gebruik zoals binnen een toepassing, kan de ontwikkelaar van de toepassing zelf kiezen om dit te doen.

WorldLocking.Core is bedoeld om te werken zoals ze zijn in elk geschikt toepassingsscenario. De hulpprogramma's kunnen echter aannames doen over de toepassing. Deze veronderstellingen kunnen ze in sommige situaties ongeschikt maken.

Voordat u een van de hulpprogramma's rechtstreeks in uw verzendtoepassing op te nemen, kunt u overwegen een versie van dat hulpprogramma te maken die is aangepast aan uw eigen vereisten en resources.

Hulpprogramma's

Verstelfuncties

Verstelfuncties zijn onderdelen die refit-gebeurtenissen verwerken. Ze maken met name bijlagepunten. In het geval van een refitbewerking fungeert attachmentPoint als een callback voor meldingen. De adjuster verwerkt die gebeurtenis op de juiste manier.

Zie verdere conceptuele bespreking van AttachmentPoints.

De exacte juiste reactie op een refit-gebeurtenis varieert voor verschillende typen objecten en is zeer toepassingsspecifiek. Als het fragment van het object bijvoorbeeld momenteel inactief is, moet het object dan worden weergegeven? Voor sommige toepassingen, omdat de juiste plaatsing van het object niet kan worden bepaald, moet het worden verborgen. Voor andere toepassingen is het misschien beter om het object in een tijdelijk onjuiste houding weer te geven dan de verwarring te ondervinden van het verdwijnen ervan. En zelfs voor toepassingen die het object moeten verbergen, zijn er verschillende manieren om het verbergen uit te voeren (bijvoorbeeld uitschakelen of verplaatsen).

De onderdelen AdjusterFixed en AdjusterMoving verwerken twee veelvoorkomende scenario's minimaal.

Het onderdeel AdjusterFixed gaat ervan uit dat het doel over het algemeen niet-bewegend is. Als de World Locking Tools een aanpassingspositie verzendt vanwege een refit-gebeurtenis, is het bedoeld om het object van adjusterFixed in de wereld te houden.

Daarentegen gaat het onderdeel AdjusterMoving ervan uit dat het doel mobiel is via de Unity-coördinaatruimte. Het houdt het World Locking Tools-systeem op de hoogte van de locatie van zijn doel, zodat in het geval van een refitbewerking het systeem de meest nauwkeurige correctie kan geven om de positie van het doel ten opzichte van de fysieke wereld constant op dat moment te houden.

Adapters

De onderdelen van de adapter zijn alleen bedoeld ter illustratie. Als u merkt dat u een van de adapters gebruikt, moet u waarschijnlijk opnieuw nadenken over de manier waarop u World Locking Tools probeert te gebruiken.

MRTK heeft met name al ingebouwde adapters, dus er is geen verdere coördinaatsysteemtransformatie vereist van de kant van de toepassing.

Er kunnen momenten zijn, met name als u MRTK niet gebruikt, wanneer de conversie van systeemeigen resources, die worden weergegeven in Spongy Space-coördinaten, naar Bevroren ruimte wordt geconverteerd. In dergelijke gevallen kan de ontwikkelaar van de toepassing een van de hier opgenomen adapters een goede referentie vinden.

  • WorldAnchorAdapter - Een WorldAnchor past de houding van een object aan in een sponsachtige ruimte om vast te blijven in de fysieke ruimte. Dit is overbodig met de wereld vergrendelde ruimte die wordt geleverd door World Locking Tools, waardoor het object in bevroren ruimte zal zweven. Met deze adapter kan een WorldAnchor de houding van een object in Frozen Space behouden. Dit is niet nodig, behalve voor diagnostische gegevens. Alle objecten in de globale coördinaatruimte van Unity zijn wereldwijd vergrendeld door World Locking Tools.

  • ToggleWorldAnchor - Vergelijkbaar met de WorldAnchorAdapter, maar kan worden ingeschakeld. Wordt ook automatisch geconverteerd naar normaal WorldAnchor-gedrag wanneer WorldLockingManager is uitgeschakeld. Alleen nuttig voor diagnostische gegevens.

  • FrozenSpatialMapping : een adapter beheert en geeft de resultaten van een SurfaceObserver correct weer. Het MRTK Spatial Awareness-systeem biedt al deze functionaliteit en meer en vereist geen adapter om te werken met World Locking Tools.

  • FrozenTapToAdd - Voor rechtstreekse interactie met het invoersysteem van Unity is conversie van binnenkomende coördinaatgegevens vereist, zoals hier wordt weergegeven. Dit is niet nodig met het invoersysteem van MRTK.

Visualizers

Visualisatie van ankergrafiek

De AnchorGraphVisual en de bijbehorende prefab vormen de kern van de geleverde visualisaties. De onderdelen zijn als volgt:

  1. Assen: de huidige poses voor de oorsprong van Spongy Space (groen) en Frozen Space (blauw) worden weergegeven als standaard 3 pijl-asaanduidingen.

  2. Spongy Anchors : dit zijn de oorspronkelijke onderliggende ankers die zijn gemaakt om de Frozen World Engine-optimalisatie te voeden. Elk wordt vertegenwoordigd door een ring, samen met een teksttag die deze identificeert. Ook wordt meer informatie overgebracht door kleur en grootte.

    • Een actief getraceerd anker is groen.

    • Een bijgehouden anker zonder relevantie is rood.

    • Een niet-ondersteund anker is geel.

    • Hoe groter de ring, hoe groter de relevantie voor dat anker.

  3. Bevroren ankers: dit zijn de bijbehorende referentiepunten in Bevroren ruimte. Als er geen trackerfout optreedt, worden deze exact uitgelijnd met de Spongy Anchors.

  4. Spongy-Frozen edges : deze verbinden de Spongy Anchors met hun bijbehorende bevroren ankers. Omdat bij het ontbreken van een trackerfout deze samenvallen, betekent het niet zien van deze randen dat alles perfect werkt. In elk geval mogen deze randen niet langer zijn dan een paar centimeter. Ze zijn rood aan de bevroren kant. De kleur vervaagt naar blauw aan het sponsachtige uiteinde.

  5. Ankerranden: deze dunne blauwgrijze lijnen geven de verbindingen weer tussen sponsachtige ankers in de ankergrafiek.

Typische ankergrafiek die een kamer doorkruist

Het inschakelen van de weergave van de ankergrafiek die World Locking Tools genereert wanneer de gebruiker door de fysieke omgeving beweegt, vereist alleen het verwijderen van de Prefabs > AnchorGraphVisual prefab worldlockingtools > in de scène. Het wordt gewoonlijk als een op hetzelfde niveau toegevoegd aan de WorldLockingContext, maar de exacte plaatsing ervan in de hiërarchie is niet van belang. Het mag echter niet in de camerahiërarchie worden geplaatst.

De ruimtelijke ankers die WLT maakt en intern gebruikt, worden gemaakt op de camerapositie. Omdat het verontrustend is om door een veld met ankervisualisaties op ooghoogte te lopen, worden ze standaard 1 meter lager weergegeven dan de werkelijke positie. Als u de ankervisualisaties op de werkelijke ankerposities wilt zien, stelt u de verticale verplaatsingsparameter van het onderdeel Anchor Graph Visual in op nul.

Aanvullende uitvoer

De World Locking Examples bevat tekstdiagnose. De meeste van deze zijn alleen relevant voor ontwikkelaars van de World Locking Tools, in plaats van klanten van de mogelijkheden. Ze zijn echter beschikbaar voor lezen en, zoals wordt weergegeven in het script StatusToText , voor realtime weergave.

Typische diagnostische weergave

Voor een postmortem-analyse kan de sectie Diagnostische gegevens van de WorldLockingContext zeer nuttig zijn bij het melden van Frozen World Engine-fouten. Zie Een fout melden voor meer informatie.