Diagnose und Behebung: Inhalte werden in der Anwendung nicht angezeigt
"Ich kann die reale Welt sehen, aber der virtuelle Inhalt erscheint nicht." Dies ist eines der häufigsten Probleme in der AR-Entwicklung. Das Problem kann aus mehreren Bereichen stammen, von Mega localization selbst bis hin zu Ihrer Rendering-Logik.
Dieser Artikel führt Sie systematisch durch die Diagnose und Lösung dieses Problems.
Diagnoseablauf: von außen nach innen
Das Prinzip "zuerst extern, dann intern" hilft, das Problem effizient zu lokalisieren. Führen Sie die folgenden Schritte der Reihe nach aus:
Schritt 1: Mega localization-Status mit externen Tools prüfen (keine Codeänderung erforderlich)
Bevor Sie tief in Ihren Anwendungscode einsteigen, bestätigen Sie zuerst, ob der Mega localization-Dienst selbst normal funktioniert. Dies ist der entscheidende Schritt und hilft zu beurteilen, ob das Problem in Mega localization selbst oder in der Anwendungsintegration wie Rendering liegt.
Mega Toolbox verwenden (mobil)
- Installieren Sie die Mega Toolbox App auf Ihrem Testtelefon, falls sie noch nicht installiert ist.
- Öffnen Sie die App und wechseln Sie zu
On-site verification and diagnosis tool. - Melden Sie sich an und wählen Sie dieselbe localization library wie Ihre Anwendung.
- Bringen Sie das Telefon an denselben Ort, an dem Ihre Anwendung beim Testen keine Inhalte anzeigen kann.
- Ergebnis beobachten:
- Wenn Toolbox erfolgreich lokalisiert (Status
Found): Glückwunsch. Der Mega localization-Dienst ist normal. Das Problem liegt innerhalb Ihrer Anwendung, insbesondere in Rendering- und Inhaltsanzeigelogik. Gehen Sie zu Schritt 2. - Wenn Toolbox nicht lokalisiert (Status
NotFoundoder ein anderer Status): Das Problem liegt beim localization-Dienst selbst. Siehe den nächsten Abschnitt für eine tiefere Analyse.
- Wenn Toolbox erfolgreich lokalisiert (Status
PC-seitige Simulation verwenden (wenn EIF erfasst wurde)
- Wenn Sie für diese Szene bereits EIF data aufgezeichnet haben, können Sie die Daten im Unity Editor auf dem PC mit dem
session-Verifikationstool wiedergeben. - Ergebnis beobachten:
- Wenn localization bei der Wiedergabe erfolgreich ist (Status
Found): Das Problem liegt in Ihrem Anwendungscode oder einer gerätespezifischen Umgebung. - Wenn localization bei der Wiedergabe fehlschlägt (Status
NotFoundoder ein anderer Status): Das Problem liegt beim localization-Dienst selbst. Siehe den nächsten Abschnitt für eine tiefere Analyse.
- Wenn localization bei der Wiedergabe erfolgreich ist (Status
- Wenn Sie für diese Szene bereits EIF data aufgezeichnet haben, können Sie die Daten im Unity Editor auf dem PC mit dem
Schritt 2: Rendering- und Inhaltslogik innerhalb der Anwendung prüfen
Wenn Schritt 1 bestätigt, dass der Mega localization-Dienst selbst normal ist, liegt das Problem in Ihrem Anwendungscode. Prüfen Sie Folgendes:
Ob der Inhalt unter dem richtigen Knoten liegt:
- Haben Sie die 3D-Objekte korrekt unter den automatisch vom Tool erzeugten Knoten
MegaBlocks>Block_*platziert? - Prüfen Sie die Hierarchie zwischen Inhalt und Block-Knoten, damit virtuelle Inhalte zur Laufzeit an der richtigen Position gerendert werden.
- Haben Sie die 3D-Objekte korrekt unter den automatisch vom Tool erzeugten Knoten
Ob Block Root von MegaTracker korrekt eingestellt ist:
- Klappen Sie
AR Sessionauf und prüfen Sie, obBlock RootinMega Trackerder vom Tool erzeugteMegaBlocks-Knoten ist.
- Klappen Sie
Ob MegaBlocks-Knoten geändert wurden:
- Stellen Sie sicher, dass die Namen der
Block_*-Knoten nicht geändert wurden und dass keine Werte in den Eigenschaftenlocal transformgeändert wurden.
- Stellen Sie sicher, dass die Namen der
Ob Event-Listening korrekt ist:
- Haben Sie die Verarbeitung der localization callbacks von
MegaTrackergeändert? - Führt Ihr Code Instanziierung oder Anzeige virtueller Inhalte erst aus, nachdem das Event für erfolgreichen localization-Status ausgelöst wurde?
- Haben Sie die Verarbeitung der localization callbacks von
Headset-Rendering und Transparenz:
- Wird Ihr virtuelles Objekt von anderen Objekten verdeckt? Prüfen Sie render queue und Shader.
- Bei Verwendung eines VST-Geräts (video see-through) prüfen Sie, ob Ihr Rendering korrekt über den Videostream gelegt wird.
- Bei Verwendung eines OST-Geräts (optical see-through) prüfen Sie, ob Inhalte wegen zu starken Umgebungslichts schwer zu sehen sind.
Probleme des Inhalts selbst:
- Gibt es ein Problem mit dem von Ihnen instanziierten Prefab? Zum Beispiel fehlende Modelldateien, Shader-Fehler, Skalierung 0 usw. Platzieren Sie testweise dasselbe Objekt manuell in der Szene und prüfen Sie, ob es normal angezeigt wird.
Analyse häufiger Ursachen für localization-Fehler und Verbesserungsvorschläge
Wenn in Schritt 1 auch Mega Toolbox nicht lokalisieren kann, prüfen und lösen Sie localization-Probleme sorgfältig. Häufige Ursachen und Maßnahmen:
Ursache 1: Karte und Umgebung stimmen nicht überein
Die Umgebung vor Ort hat sich im Vergleich zur Erfassung und Kartenerstellung stark verändert, der Erlebnisbereich wurde bei der Erfassung nicht abgedeckt, oder die Karte selbst ist falsch.
Verbesserungsvorschläge:- Stellen Sie sicher, dass die in Ihrer localization library geladene Karte mit dem aktuellen physischen Raum szenisch übereinstimmt.
- Wenn die Umgebung umgebaut wurde, z. B. Renovierung oder Austausch von Auslagen, müssen Sie die Karte erneut erfassen und generieren.
- Wenn der problematische Bereich bei Erfassung und Mapping nicht abgedeckt wurde, muss die Karte per incremental update neu generiert werden.
Ursache 2: schlechte Initialisierungsumgebung
Die Anwendung startet in einem Bereich mit wenig Textur, z. B. vor einer einfarbigen Wand oder zum Boden gerichtet.
Verbesserungsvorschläge:- Leiten Sie Benutzer an, die Anwendung in einem Bereich mit reichhaltiger Textur zu starten, damit das System initial localization schnell abschließen kann.
- Geben Sie in der UI klare Hinweise, z. B. "Telefon anheben und umsehen".
Ursache 3: Netzwerk- oder Dienstprobleme
Netzwerkverzögerung führt zu Timeout bei Anfragen an den localization-Dienst, oder der Dienst selbst ist gestört, oder das Limit gleichzeitiger Nutzung wurde überschritten. Geben Sie uns bei letzterem bitte zeitnah Feedback.Ursache 4: Grenze der Algorithmusfähigkeit erreicht
Mega localization basiert auf fortschrittlicher computer vision, AI und anderen Algorithmen, ist aber nicht allmächtig und hat bestimmte Grenzen. Wenn localization in bestimmten Szenen oder Positionen dauerhaft fehlschlägt, können Sie uns über Bildschirmaufnahmen, EIF data-Aufzeichnungen usw. Feedback geben, damit wir die Algorithmen weiter verbessern und iterieren können.
Außerdem ist zu beachten, dass Mega localization einen Prozess benötigt, normalerweise etwa 1-2 Sekunden. Wegen realer Komplexität wie Netzwerküberlastung, hoher concurrency, Telefonerwärmung und Frequenzreduzierung kann es länger dauern. Daher können Sie in der Anwendung eine klare Lade-/Warteoberfläche entwerfen, die "Localizing..." anzeigt, damit Benutzer wegen des Wartens nicht fälschlich denken, der Dienst sei ausgefallen oder localization werde nicht gefunden.
Anmerkung
- Die erste localization ist normalerweise langsamer als spätere, weil das System nach der ersten erfolgreichen localization entsprechende Inhalte laden muss. Das ist normal.
- Schnelle Gerätebewegung kann localization-Verlust verursachen. Leiten Sie Benutzer an, das Gerät ruhig zu bewegen.
Zusammenfassung und Best Practices
- Immer zuerst mit externen Tools prüfen: So lässt sich der Problembereich am schnellsten auf "localization" oder "rendering" eingrenzen.
- Angemessene Benutzererwartungen schaffen: Verwenden Sie UI-Hinweise, damit Benutzer wissen, dass localization Zeit braucht, und führen Sie sie in eine geeignete Umgebung.
- Inhaltslogik beachten: Stellen Sie sicher, dass Einstellungen wie content binding korrekt sind.
- Logs sinnvoll nutzen: Logs an Schlüsselstellen wie Event-Auslösung, Pose-Erfassung und Antwortstatus helfen, Code-Logikprobleme schnell zu finden.
Mit der obigen systematischen Diagnose sollten Sie die meisten Probleme "Inhalt wird nicht angezeigt" lösen können. Wenn das Problem weiterhin besteht, bereiten Sie EIF data und Logs vor und senden Sie uns einen detaillierten Bericht über Issue report.