Schnellstart: Ausführliche exemplarische Vorgehensweise zum MRTK
In dieser Anleitung erhalten Sie einen ausführlichen Überblick über die Azure Object Anchors MRTK Unity-Beispielanwendung. Sie soll Ihnen einen Einblick in den Entwurf des Beispiels bieten. Durch das Lesen dieses Leitfadens können Entwickler ihr Verständnis für die wichtigsten Azure Object Anchors in dem Beispiel beschleunigen.
Projekt-Layout
Ressourcen, die für das MRTK Azure Object Anchors Unity-Beispiel erstellt wurden, werden in Assets\MixedReality.AzureObjectAnchors
gespeichert. Folgende Unterordner sind verfügbar:
- Symbole
- Dieser Unterordner enthält einige benutzerdefinierte Symbole, die im gegenüberliegenden Benutzermenü verwendet werden.
- Materialien
- Enthält Shader und Materialien für die Visualisierung der Oberflächenrekonstruktion und einen Shader Nur für die Tiefe der in den Tiefenpuffer schreibt, um die Hologramm-Stabilität in der Textumgebung zu unterstützen.
- Prefabs
- Enthält eine wiederverwendbare Unity
GameObjects
. Insbesondere stelltTrackableObjectPrefab
das Objekt dar, das erstellt wird, wenn Azure Object Anchors ein Objekt erkennt.
- Enthält eine wiederverwendbare Unity
- Profiles
- Enthält benutzerdefinierte MRTK-Profile, die die minimal erforderliche Funktionalität von MRTK beschreiben, um die Anwendung zu aktivieren.
- Szenen
- Enthält die
AOASampleTestScene
, die die primäre Szene im Beispiel ist.
- Enthält die
- Skripts
- Enthält die Skripts, die für das Beispiel geschrieben wurden.
Unity-Szene
Mixed Reality Play Space – hauptsächlich MRTK-Bausteine
- Einführung in das MRTK für Unity.
- An die Kamera ist eine Benutzeroberfläche angefügt, die den detaillierten Gesamtstatus des Azure Object Anchors observiert (siehe
OverlayDebugText.cs
).
Objekt Mixed Reality Play Space – größtenteils in Zusammenhang mit Azure Object Anchors, aber auch mit einigen MRTK-Steuerelementen. Zwei Skripts, TrackableObjectSearch
und ObjectTracker
, die an das übergeordnete Element angefügt sind, stellen die primäre Schnittstelle mit Azure Object Anchors dar.
- Menü
- In erster Linie MRTK-Code, aber die Interaktionen der Benutzeroberfläche sind auf die Azure Object Anchors-Funktionalität ausgerichtet.
- Das angefügte
TrackableObjectMenu
-Skript übernimmt die primäre Aufgabe, die MRTK-Benutzeroberflächenereignisse an die entsprechenden Azure Object Anchors weiterzuleiten. - MRTK-Handmenü.
- WorkspaceBoundingBox
- Enthält MRTK-Skripts, die dem Steuern eines Begrenzungsfelds zugeordnet sind.
- Es ist auch ein untergeordnetes Objekt
ModelVis
enthalten, das zum Visualisieren des Azure Object Anchors-Modells verwendet wird, bevor eine Erkennung aufgetreten ist, um die Ausrichtung bei komplizierten Erkennungen zu unterstützen.
Exemplarische Vorgehensweise im Menü
Bevor wir uns mit den Skripts befassen, lassen Sie uns zunächst die Menüelemente durchgehen. Auf diese Weise können wir darauf verweisen, wie diese Menüelemente mit den Skripts interagieren.
Die unteren und rechten Untermenüs werden nicht automatisch angezeigt, sondern mit Search Area Settings
bzw. Tracker Settings
umschaltet.
Hauptmenü
- Suche starten
- Es beginnt die Suche nach Objekten im angegebenen Suchbereich.
- Umschalten der räumlichen Zuordnung
- Zyklen zwischen der Anzeige der räumlichen Zuordnung während der Suche, zeigt immer die räumlichen Zuordnung und niemals räumlichen Zuordnung.
- Tracker Einstellungen/Suchbereich-Einstellungen
- Umschalten in die entsprechenden Untermenüs.
- Ablaufverfolgung starten/Ablaufverfolgung beenden
- Beginnt oder beendet die Diagnoseablaufverfolgung.
- Hochladen Ablaufverfolgung
- Lädt die Diagnoseablaufverfolgung zur Debuganalyse an Microsoft hoch.
Nachverfolgungseinstellungen
- Hohe Genauigkeit
- Wenn diese Option aktiviert ist, wird
ObjectInstanceTrackingMode
aufHighLatencyAccuratePosition
festgelegt. - Wenn diese Option deaktiviert ist, wird
ObjectInstanceTrackingMode
aufLowLatencyCoarsePosition
festgelegt.
- Wenn diese Option aktiviert ist, wird
- Gelockerte Vertikale Ausrichtung
- Wenn diese Option aktiviert ist, wird
AllowedVerticalOrientationInDegrees
auf 10 Grad festgelegt. Dieses Funktion ermöglicht die Erkennung von Objekten, die sich auf Rampen befinden. - Wenn diese Option deaktiviert ist, wird
AllowedVerticalOrientationInDegrees
auf 0 Grad festgelegt.
- Wenn diese Option aktiviert ist, wird
- Zulassen von Skalierungsänderung
- Wenn diese Option aktiviert ist, wird
MaxScaleChange
auf 0,1 festgelegt. Dieses Funktion ermöglicht Azure Object Anchors, die Skalierung des Objekts basierend auf den Anpassungen der HoloLens-Nachverfolgung anzupassen. - Wenn diese Option deaktiviert ist, wird
MaxScaleChange
auf 0 festgelegt.
- Wenn diese Option aktiviert ist, wird
- Schieberegler "Abdeckungsverhältnis"
- Passt das Verhältnis der Abdeckung an, das für die Objekterkennung erforderlich ist, um eine Übereinstimmung zu berücksichtigen. Niedrigere Werte erhöhen die Erkennungshäufigkeit. Diese Funktion kann für schwer zu erkennende Objekte wünschenswert sein, kann aber auch zu einer erhöhten Erkennung falsch-positiver Objekte führen.
Suchbereichseinstellungen
- Sperrsuchbereich
- Wenn diese Option aktiviert ist, wird verhindert, dass der Benutzer den Suchbereich ändert.
- Suchbereich automatisch anpassen
- Wenn diese Option aktiviert ist, können Skripts den Suchbereich verschieben, um den Erkennungsprozess zu verfeinern.
- Zyklusnetz
- Durchläuft die Gitternetze für
.ou
Objekte, die erkannt werden können, und auch ohne Gitternetz.
- Durchläuft die Gitternetze für
Skripts
- AutonomousSearchArea.cs
- Dieses Skript ist an
WorkspaceBoundingBox
angefügt. Das Skript versucht, zu skalieren undWorkspaceBoundingBox
automatisch zu platzieren. Es wird aktiviert, wennAuto-Adjust Search Area
aktiviert ist.
- Dieses Skript ist an
- ObjectAnchorsSubscription.cs
- Dieses Skript umschließt die Informationen, die zum Hochladen von Diagnosedaten erforderlich sind.
- ObjectTracker.cs
- Dieses Skript ist eine Brücke zwischen Unity und den Erkennungsaspekten des Azure Object Anchors SDK.
- ObjectTrackerDiagnostics.cs
- Dieses Skript verwaltet das Diagnosefeature des Azure Object Anchors SDK.
- OverlayDebugText.cs
- Dieses Skript ist an die Hauptkamera angefügt. Es ist dafür verantwortlich, den Gesamtzustand des Beispiels anzuzeigen und dem Benutzer die Azure Object Anchors anzuzeigen.
- PositionDebugInfo.cs
- Dieses Skript erzwingt lediglich, dass dem Benutzer der an ein erkanntes Objekt angefügte Debugtext angezeigt wird.
- SearchAreaController.cs
- Dieses Skript verwaltet den Zustand des
WorkspaceBoundingBox
, das verwendet wird, um anzugeben, wo Azure Object Anchors nach Objekten suchen sollen.
- Dieses Skript verwaltet den Zustand des
- SearchAreaModelVisualization.cs
- Dieses Skript aktiviert die
Cycle Mesh
Funktionalität unterSearch Area Settings
.
- Dieses Skript aktiviert die
- SpatialMappingController.cs
- Dieses Skript verwaltet, wann die räumliche Zuordnung basierend auf der Interaktion mit
Toggle Spatial Mapping
unterMain Menu
aktiviert werden soll.
- Dieses Skript verwaltet, wann die räumliche Zuordnung basierend auf der Interaktion mit
- TextToSpeech.cs
- Dieses Skript verwendet einen Text und setzt ihn in eine Sprache um.
- TrackableObjectData.cs
- Dieses Skript stellt die Daten für Objekte dar, die nachverfolgt werden können.
- TrackableObjectDataLoader.cs
- Mit diesem Skript werden die
.ou
Dateien geladen und inTrackableObjectData
Elemente umgearbeitet.
- Mit diesem Skript werden die
- TrackableObjectMenu.cs
- Die meisten Benutzerinteraktionen fließen von der Benutzeroberfläche zu diesem Skript und dann zum entsprechenden Skript. Beispielsweise, wenn
TrackableObjectMenu
überToggleSpatialMapping
verfügt, das anSpatialMappingController
geroutet wird.
- Die meisten Benutzerinteraktionen fließen von der Benutzeroberfläche zu diesem Skript und dann zum entsprechenden Skript. Beispielsweise, wenn
- TrackableObjectSearch.cs
- Dieses Skript führt eine geringe Verwaltung des Suchbereichs durch. Insbesondere die Interaktion, bei der der Benutzer in den Raum tippt und das Suchfeld vor dem Benutzer platziert wird. Außerdem wird das Innere des Suchfelds während der Suche oder während der Erkennung eines Objekts nicht gerendert, um zu verhindern, dass das vollständige Rendering das Objekt einblendet.
- TrackedObject.cs
- Ein Primäres Skript auf der
TrackableObjectPrefab
. Es behält den Visualisierungszustand eines Objekts bei, das von der Azure Object Anchors erkannt wurde.
- Ein Primäres Skript auf der
- TrackedObjectData.cs
- Dieses Skript enthält Informationen zu einem Objekt, das von Azure Object Anchors derzeit nachverfolgt wird.
Prefabs
- TrackableObjectPrefab
- Das Prefab, das erstellt wird, wenn ein Objekt von AzureObjectAnchors erkannt wird. Ein untergeordnetes Objekt dieses Prefabs,
LogicalCenter
, stellt die Mitte des Objekts dar und ist ein geeigneter Startort, wenn versucht wird, untergeordneten Inhalt an erkannte Objekte anfügen. Der im Beispiel angezeigte Informationstext wird an diesen logischen Mittelpunkt angefügt.
- Das Prefab, das erstellt wird, wenn ein Objekt von AzureObjectAnchors erkannt wird. Ein untergeordnetes Objekt dieses Prefabs,