Steuerung des Mega-Tracking-Prozesses
Dieser Artikel beschreibt, wie Sie verschiedene Funktionen und Parameter des Mega-Tracking-Prozesses anpassen können, um den Anforderungen verschiedener Anwendungsszenarien gerecht zu werden.
Vorbereitung
- Überprüfen Sie Ist meine Lokalisierungsbibliothek verwendbar?
Anpassung der Geräteunterstützungsstufe
Die Eigenschaft MegaTrackerFrameFilter.MinInputFrameLevel von MegaTrackerFrameFilter legt die niedrigste von Mega unterstützte Gerätestufe fest.
![]()
Mega kann mit fast allen Arten von Frame-Datenquellen arbeiten, aber verschiedene Frame-Datenquellen haben unterschiedliche Auswirkungen auf die Tracking-Qualität.
Standardmäßig wählt Mega die Frame-Datenquelle mit der höchsten vom Gerät unterstützten Stufe für das Tracking aus. Die Standardkonfiguration für Mega-fähige Sessions ist bereits für Frame-Datenquellen mit 6DoF- und 5DoF-Unterstützung konfiguriert.
Damit Mega eine Frame-Datenquelle einer bestimmten Stufe verwenden kann, müssen zwei Bedingungen erfüllt sein:
- Die benötigte Frame-Datenquelle muss in der Gruppe der optionalen Frame-Datenquellen der Session enthalten sein.
- MegaTrackerFrameFilter.MinInputFrameLevel muss größer oder gleich der CameraTransformType-Stufe der benötigten Frame-Datenquelle sein.
Um beispielsweise 3DoF-Tracking in einer Standardsession zu unterstützen, müssen Sie:
- ThreeDofCameraDeviceFrameSource zur Frame-Datenquellengruppe der Session hinzufügen.
- MegaTrackerFrameFilter.MinInputFrameLevel auf ThreeDof setzen.
Um beispielsweise die 5DoF-Tracking-Unterstützung in einer Standardsession zu entfernen, müssen Sie:
- InertialCameraDeviceFrameSource aus der Frame-Datenquellengruppe der Session entfernen.
- MegaTrackerFrameFilter.MinInputFrameLevel auf SixDof setzen (selbst ohne diese Änderung würde 5DoF nicht verwendet, da keine 5DoF-Frame-Datenquelle vorhanden ist).
Wenn keine geeignete Frame-Datenquelle verfügbar ist, schlägt der Session-Zusammenbau fehl.
Verwaltung von Tracking-Zielen
Bei der Verwendung von Mega müssen Sie das von MegaTrackerFrameFilter verwendete Target, also den Block, angeben.
Steuerung der Block-Herkunft
In den meisten Fällen wird empfohlen, bei der Standardkonfiguration zu bleiben, d.h. Blöcke mit Mega Studio im Editor zu importieren.
Wählen Sie das Mega Tracker-Objekt unter der Session aus. Die Option Block Root Source sollte auf External belassen werden (Standard).
![]()
Gleichzeitig müssen Sie Block Root auf das MegaBlocks-Objekt in der Szene festlegen.
![]()
Durch Ändern der Option Block Root Source können Sie andere Block-Herkunftsarten angeben. Bei der Verwendung von ema-Importdaten wird normalerweise die Option Internal oder Mixed gewählt.
In Skripten können Sie BlockHolder.BlockRootSource ändern, um denselben Effekt zu erzielen.
Steuerung des Multi-Target-Trackings
In den meisten Mega-Anwendungsszenarien ist die Verwendung mehrerer Targets nicht erforderlich. Bevor Sie lernen, wie Sie verhindern können, dass sich mehrere Blöcke gegenseitig beeinflussen, wird empfohlen, nur einen Block pro Lokalisierungsbibliothek zu verwenden.
Tipp
Grundsätzlich berechnet Mega die Position des Geräts in allen Blöcken, anstatt aus der Lokalisierungsbibliothek die vom Gerät gesehenen Blöcke auszuwählen. Unüberlegte Verwendung kann aufgrund von Datenverfälschungen zu Qualitätseinbußen führen.
Wählen Sie das Mega Tracker-Objekt unter der Session aus und ändern Sie die Option Multi Block, um die Multi-Target-Tracking-Funktion zu aktivieren oder zu deaktivieren.
![]()
In Skripten können Sie BlockHolder.MultiBlock ändern, um denselben Effekt zu erzielen.
Warnung
Normalerweise sollte nur ein Block gleichzeitig in einer Lokalisierungsbibliothek vorhanden sein.
Änderungen an der Multi-Target-Konfiguration beeinflussen die Tracking-Qualität und werden generell nicht empfohlen. Verwenden Sie diese Funktion nur unter Anleitung des EasyAR-Supports.
Wenn diese Konfiguration während der Anwendungsausführung geändert wurde, müssen Sie dies bei der Problembeschreibung an EasyAR unbedingt erwähnen.
Verständnis des aktuellen Systemstatus
In der Standard-Session-Konfiguration werden UI-Nachrichten auf dem Bildschirm angezeigt, die Informationen zum Mega-Tracking-Status enthalten.
Bei erfolgreicher Lokalisierung enthält der Mega-Block-Status den Text Found sowie den Namen und die ID des aktuell getrackten Blocks:
![]()
Bei fehlgeschlagener Lokalisierung enthält der Mega-Block-Status den Text NotFound:
![]()
Tipp
NotFound ist ein normaler Status, der während des Mega-Betriebs häufig auftritt. Das Tracking läuft weiter, wenn dieser Status auftritt. In der Anwendungsentwicklung ist normalerweise keine spezielle Behandlung des NotFound-Status erforderlich.
Mit dem Ereignis MegaTrackerFrameFilter.LocalizationRespond können Sie den aktuellen Lokalisierungsstatus abrufen und feststellen, ob das System aktuell ein Tracking-Ziel gefunden hat.
Der folgende Code zeigt, wie Sie dieses Ereignis verwenden und häufige Ausnahmezustände behandeln können, die für Anwendungen relevant sind:
private void Awake()
{
megaTracker.LocalizationRespond += HandleLocalizationStatusChange;
}
private void HandleLocalizationStatusChange(MegaLocalizationResponse response)
{
var status = response.Status;
wakingUpCount = status == MegaTrackerLocalizationStatus.WakingUp ? wakingUpCount + 1 : 0;
if (wakingUpCount >= 5)
{
// Der Dienst wird gestartet, der Endbenutzer muss warten
}
if (status == MegaTrackerLocalizationStatus.QpsLimitExceeded)
{
// QPS-Limit überschritten, führt zu zufälligen Lokalisierungsfehlern bei Endbenutzern (allgemeine Tracking-Qualität sinkt)
// Normalerweise muss das QPS-Limit erhöht werden, um die Tracking-Qualität bei aktueller Benutzerzahl zu gewährleisten
}
if (status == MegaTrackerLocalizationStatus.ApiTokenExpired)
{
// Token abgelaufen, tritt nur bei Token-basiertem Dienstzugriff auf
// Die Anwendung muss ein neues Token vom Backend anfordern und mit MegaTrackerFrameFilter.UpdateToken aktualisieren
}
}
Wenn die Anwendung häufig den Status MegaTrackerLocalizationStatus.RequestTimeout erhält, deutet dies normalerweise auf eine schlechte Netzwerkverbindung zwischen Gerät und Dienst hin. Optimieren Sie die Netzwerkumgebung, um die Tracking-Qualität zu verbessern. In Szenarien mit nicht verbesserbarer Netzwerkkonnektivität können Sie die Anforderungs-Timeout-Zeit erhöhen.
Anmerkung
Über dieses Ereignis kann nicht die von der Lokalisierung zurückgegebene Pose abgerufen werden.
Tatsächlich wird die von der Lokalisierung zurückgegebene Pose in der Anwendungsentwicklung nicht benötigt. EasyAR berechnet nach der Lokalisierung eine genauere Pose über lokale Algorithmen und stellt sie Entwicklern zur Verfügung. Diese Pose spiegelt sich bereits in der Transformation des Blocks wider. Weitere Informationen finden Sie unter Ergebnisse der Session abrufen.
Pausieren und Fortsetzen
Die Tracking- und Lokalisierungsfunktionen von Mega können separat pausiert und fortgesetzt werden.
Tracking pausieren
Setzen Sie MegaTrackerFrameFilter.enabled auf false, um das Tracking zu pausieren.
Standardmäßig werden alle Inhalte unter Block-Knoten ausgeblendet, wenn das Tracking pausiert ist.
Lokalisierung pausieren
Setzen Sie MegaTrackerFrameFilter.EnableLocalization auf false, um die Lokalisierung zu pausieren.
Warnung
Das Pausieren der Lokalisierung beeinflusst die Tracking-Qualität und wird generell nicht empfohlen. Verwenden Sie diese Funktion nur unter Anleitung des EasyAR-Supports.
Wenn die Lokalisierung während der Anwendungsausführung pausiert wurde, müssen Sie dies bei der Problembeschreibung an EasyAR unbedingt erwähnen.
Dienst- und Anfragesteuerung
Sie können das Anforderungsverhalten an den Dienst durch Ändern der Parameter der MegaTrackerFrameFilter-Komponente steuern.
Anforderungsintervalle und Timeouts
Wählen Sie das Mega Tracker-Objekt unter der Session aus und ändern Sie die Optionen unter Request Time Parameters, um die Zeitintervalle und Timeouts für Dienstaufrufe anzupassen.
![]()
In Skripten können Sie MegaTrackerFrameFilter.RequestTimeParameters ändern, um denselben Effekt zu erzielen.
Warnung
Änderungen am Anfrageintervall beeinflussen die Tracking-Qualität und werden generell nicht empfohlen. Verwenden Sie diese Einstellung nur unter Anleitung des EasyAR-Supports.
Wenn das Anfrageintervall während der Anwendungsausführung geändert wurde, müssen Sie dies bei der Problembeschreibung an EasyAR unbedingt erwähnen.
Wechsel der Lokalisierungsbibliothek
Verwenden Sie MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController), um zur Laufzeit die Lokalisierungsbibliothek zu wechseln. Bei Verwendung dieser Schnittstelle werden Kameraansicht und Session nicht unterbrochen.
Verwandte Themen
- Best Practices für AR-Sessions mit Mega beschreibt, wie Sie eine für Mega geeignete AR-Session erstellen und konfigurieren
- Hinzufügen von Mega-Tracking-Zielen erklärt, wie Sie Mega-Tracking-Ziele (Blöcke) hinzufügen und Blockmodelle im Unity-Editor zur Entwicklungsunterstützung laden
- Hinzufügen einer Gruppe von Frame-Datenquellen beschreibt, wie Sie die Frame-Datenquellengruppe einer Session ändern
- Ergebnisse der Session abrufen erklärt, wie Sie die Tracking-Ergebnisse von Session-Komponenten abrufen
- UI-Nachrichten beschreibt, wie Sie UI-Nachrichten zur Anzeige des Session-Status verwenden