Delen via


Quickstart: Uitgebreid MRTK-overzicht

Deze handleiding biedt een uitgebreide dekking van de Azure Object Anchors MRTK Unity-voorbeeldtoepassing. Het is bedoeld om inzicht te geven in het ontwerp van het voorbeeld. Door deze handleiding te lezen, kunnen ontwikkelaars sneller inzicht krijgen in de belangrijkste Azure Object Anchors-concepten in het voorbeeld.

Projectindeling

Assets die zijn gemaakt voor het MRTK Unity-voorbeeld van Azure Object Anchors, worden opgeslagen in Assets\MixedReality.AzureObjectAnchors. Submappen zijn als volgt:

  • Pictogrammen
    • Bevat een aantal aangepaste pictogrammen die worden gebruikt in het gebruikersmenu.
  • Materialen
    • Bevat shaders en materialen voor visualisatie van oppervlaktereconstructies en een arcering met alleen diepte , die naar de dieptebuffer schrijft om te helpen bij het stabiliseren van hologrammen rond tekst.
  • Prefabs
    • Bevat herbruikbare Unity GameObjects. Vertegenwoordigt met name TrackableObjectPrefab het object dat is gemaakt wanneer Azure Object Anchors een object detecteert.
  • Profielen
    • Bevat aangepaste MRTK-profielen die de minimaal vereiste functionaliteit van MRTK beschrijven om de toepassing in te schakelen.
  • Scènes
    • Bevat de AOASampleTestScene. Dit is de primaire scène in het voorbeeld.
  • Scripts
    • Bevat de scripts die voor het voorbeeld zijn geschreven.

Unity-scène

Mixed Reality Play Space – voornamelijk standaard MRTK

  • Maak kennis met MRTK voor Unity.
  • Er is een gebruikersinterface gekoppeld aan de camera met informatie over de algemene status van Azure Object Anchors (zie OverlayDebugText.cs).

Object Mixed Reality Afspeelruimte: voornamelijk gerelateerd aan Azure Object Anchors, maar met enkele MRTK-besturingselementen. Twee scripts, TrackableObjectSearch en ObjectTracker, die zijn gekoppeld aan het bovenliggende element, vertegenwoordigen de primaire interface met Azure Object Anchors.

  • Menu
    • Voornamelijk MRTK-code, maar de interacties in de gebruikersinterface zijn gericht op de functionaliteit van Azure Object Anchors.
    • Het gekoppelde TrackableObjectMenu script voert de primaire taak uit voor het routeren van MRTK UI-gebeurtenissen naar de juiste Azure Object Anchors-aanroepen.
    • MRTK handmenu.
  • WorkspaceBoundingBox
    • Bevat MRTK-scripts die zijn gekoppeld aan het beheren van een begrenzingsvak.
    • Bevat ook een ModelVis onderliggend object, dat wordt gebruikt voor het visualiseren van het Azure Object Anchors-model voordat er een detectie is opgetreden om te helpen bij het uitlijnen van lastige detecties.

Voordat we de scripts gaan bekijken, laten we eerst de menu-items doorlopen. Op deze manier kunnen we verwijzen naar de interactie tussen deze menu-items en de scripts.

mrtk-menu's

De submenu's onder en rechts worden niet automatisch weergegeven, maar worden ingeschakeld met Search Area Settings respectievelijk en Tracker Settings.

  • Zoeken starten
    • Begint met zoeken naar objecten in het opgegeven zoekgebied.
  • Ruimtelijke toewijzing in-/uitschakelen
    • Cycli tussen het weergeven van ruimtelijke toewijzing tijdens het zoeken, het altijd weergeven van ruimtelijke toewijzing en het nooit weergeven van ruimtelijke toewijzing.
  • Instellingen voor trackers/instellingen voor zoekgebied
    • Schakelt de bijbehorende submenu's in.
  • Tracering starten/traceren stoppen
    • Begint of beëindigt diagnostische tracering.
  • Tracering uploaden
    • Uploadt diagnostische tracering naar Microsoft voor foutopsporingsanalyse.

Instellingen voor trackers

  • Hoge nauwkeurigheid
    • Indien ingeschakeld, wordt de ObjectInstanceTrackingMode ingesteld op HighLatencyAccuratePosition.
    • Wanneer uitgeschakeld, ObjectInstanceTrackingMode is ingesteld op LowLatencyCoarsePosition.
  • Versoepelde verticale uitlijning
    • Als deze optie is ingeschakeld, wordt ingesteld AllowedVerticalOrientationInDegrees op 10 graden. Met deze functie kunt u objecten detecteren die zich op hellingen bevinden.
    • Als dit is uitgeschakeld, wordt ingesteld AllowedVerticalOrientationInDegrees op 0 graden.
  • Schaalwijziging toestaan
    • Als deze optie is ingeschakeld, wordt ingesteld MaxScaleChange op 0.1. Met deze functie kan Azure Object Anchors de schaal van het object aanpassen op basis van aanpassingen van de HoloLens-traceringsschaal.
    • Als dit is uitgeschakeld, stelt u in MaxScaleChange op 0.
  • Schuifregelaar dekkingsverhouding
    • Hiermee past u de dekkingsverhouding aan die nodig is voor objectdetectie om een overeenkomst te overwegen. Lagere waarden verhogen de detectiefrequentie. Deze functie kan wenselijk zijn voor moeilijk te detecteren objecten, maar kan ook leiden tot verhoogde fout-positieve objectdetecties.

Instellingen voor zoekgebied

  • Zoekgebied vergrendelen
    • Als dit is ingeschakeld, voorkomt u dat de gebruiker het zoekgebied wijzigt.
  • Zoekgebied automatisch aanpassen
    • Wanneer deze optie is ingeschakeld, kunnen scripts het zoekgebied verplaatsen om het detectieproces te verfijnen.
  • Cycle Mesh
    • Doorloopt de meshes voor .ou objecten die kunnen worden gedetecteerd en geen mesh.

Scripts

  • AutonomousSearchArea.cs
    • Dit script is gekoppeld aan de WorkspaceBoundingBox. Het script probeert de automatisch te schalen en te plaatsen WorkspaceBoundingBox . Deze wordt ingeschakeld wanneer de Auto-Adjust Search Area is ingeschakeld.
  • ObjectAnchorsSubscription.cs
    • Dit script verpakt de informatie die nodig is om diagnostische gegevens te uploaden.
  • ObjectTracker.cs
    • Dit script overbrugt tussen Unity en de detectieaspecten van de Azure Object Anchors SDK.
  • ObjectTrackerDiagnostics.cs
    • Met dit script wordt de diagnostische functie van de Azure Object Anchors SDK beheerd.
  • OverlayDebugText.cs
    • Dit script is gekoppeld aan de hoofdcamera. Het is verantwoordelijk voor het weergeven van de algemene status van het voorbeeld en Azure Object Anchors voor de gebruiker.
  • PositionDebugInfo.cs
    • Dit script dwingt de foutopsporingstekst die is gekoppeld aan een gedetecteerd object af om de gebruiker te zien.
  • SearchAreaController.cs
    • Dit script beheert de status van de WorkspaceBoundingBox die wordt gebruikt om aan te geven waar Azure Object Anchors naar objecten moet zoeken.
  • SearchAreaModelVisualization.cs
    • Met dit script wordt de Cycle Mesh functionaliteit onder Search Area Settingsingeschakeld.
  • SpatialMappingController.cs
    • Met dit script wordt beheerd wanneer ruimtelijke toewijzing moet worden ingeschakeld op basis van de interactie met Toggle Spatial Mapping onder de Main Menu.
  • TextToSpeech.cs
    • Met dit script wordt tekst omgezet in spraak.
  • TrackableObjectData.cs
    • Dit script vertegenwoordigt de gegevens voor objecten die kunnen worden bijgehouden.
  • TrackableObjectDataLoader.cs
    • Met dit script worden de .ou bestanden geladen en omgezet in TrackableObjectData items.
  • TrackableObjectMenu.cs
    • De meeste gebruikersinteracties stromen van de gebruikersinterface naar dit script en vervolgens naar het juiste script. heeft ToggleSpatialMappingbijvoorbeeld TrackableObjectMenu , die wordt gerouteerd naar SpatialMappingController.
  • TrackableObjectSearch.cs
    • Met dit script wordt een licht beheer van het zoekgebied uitgevoerd. Met name de interactie waarbij de gebruiker in de ruimte tikt en het zoekvak voor de gebruiker wordt geplaatst. Het zorgt er ook voor dat de binnenkant van het zoekvak niet wordt weergegeven tijdens het zoeken of terwijl een object wordt gedetecteerd, om te voorkomen dat de volledige rendering het object omvat.
  • TrackedObject.cs
    • Primair script op de TrackableObjectPrefab. Het behoudt de visualisatiestatus van een object dat is gedetecteerd door Azure Object Anchors.
  • TrackedObjectData.cs
    • Dit script bevat informatie over een object dat momenteel door Azure Object Anchors wordt bijgehouden.

Prefabs

  • TrackableObjectPrefab
    • Prefab die wordt gemaakt wanneer een object wordt gedetecteerd door AzureObjectAnchors. Een onderliggend element van deze prefab, LogicalCenter, vertegenwoordigt het midden van het object en is een geschikte plek om te beginnen bij het koppelen van onderliggende inhoud aan gedetecteerde objecten. De informatietekst die door het voorbeeld wordt weergegeven, is gekoppeld aan dit logische midden.

Volgende stappen