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 nameTrackableObjectPrefab
het object dat is gemaakt wanneer Azure Object Anchors een object detecteert.
- Bevat herbruikbare Unity
-
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.
- Bevat de
-
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.
Overzicht van menu
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.
De submenu's onder en rechts worden niet automatisch weergegeven, maar worden ingeschakeld met Search Area Settings
respectievelijk en Tracker Settings
.
Hoofdmenu
-
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 opHighLatencyAccuratePosition
. - Wanneer uitgeschakeld,
ObjectInstanceTrackingMode
is ingesteld opLowLatencyCoarsePosition
.
- Indien ingeschakeld, wordt de
-
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.
- Als deze optie is ingeschakeld, wordt ingesteld
-
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.
- Als deze optie is ingeschakeld, wordt ingesteld
-
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.
- Doorloopt de meshes voor
Scripts
-
AutonomousSearchArea.cs
- Dit script is gekoppeld aan de
WorkspaceBoundingBox
. Het script probeert de automatisch te schalen en te plaatsenWorkspaceBoundingBox
. Deze wordt ingeschakeld wanneer deAuto-Adjust Search Area
is ingeschakeld.
- Dit script is gekoppeld aan de
-
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.
- Dit script beheert de status van de
-
SearchAreaModelVisualization.cs
- Met dit script wordt de
Cycle Mesh
functionaliteit onderSearch Area Settings
ingeschakeld.
- Met dit script wordt de
-
SpatialMappingController.cs
- Met dit script wordt beheerd wanneer ruimtelijke toewijzing moet worden ingeschakeld op basis van de interactie met
Toggle Spatial Mapping
onder deMain Menu
.
- Met dit script wordt beheerd wanneer ruimtelijke toewijzing moet worden ingeschakeld op basis van de interactie met
-
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 inTrackableObjectData
items.
- Met dit script worden de
-
TrackableObjectMenu.cs
- De meeste gebruikersinteracties stromen van de gebruikersinterface naar dit script en vervolgens naar het juiste script. heeft
ToggleSpatialMapping
bijvoorbeeldTrackableObjectMenu
, die wordt gerouteerd naarSpatialMappingController
.
- De meeste gebruikersinteracties stromen van de gebruikersinterface naar dit script en vervolgens naar het juiste script. heeft
-
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.
- Primair script op de
-
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.
- Prefab die wordt gemaakt wanneer een object wordt gedetecteerd door AzureObjectAnchors. Een onderliggend element van deze prefab,