Table of Contents

EasyAR Sense Unity Plugin Migration Guide

Dieser Artikel erklärt, wie Sie von einer älteren Version des EasyAR Sense Unity Plugins auf die neuere Version migrieren können.

Kompatibilitätserklärung

Ab Version 4000 folgt das EasyAR Sense Unity Plugin der von Unity geforderten Paketversionsverwaltung (mit Semantic Versioning). Die Kompatibilität kann anhand der Versionsnummer bestimmt werden.

4.7 ist eine Schrittweise Aktualisierungsversion. Zwei beliebige 4.7-Versionen sind nicht kompatibel.

Bei Versionen vor 4.7 gibt nur die dritte Versionsnummer die Rückwärtskompatibilität an. Änderungen der ersten beiden Versionsnummern bedeuten Inkompatibilität. Beispielsweise ist 4.6.2 mit 4.6.1 kompatibel, aber 4.6.0 ist mit 4.5.0 nicht kompatibel.

Warnung

Das Ändern der tgz-Datei oder das Inkomplett-Update des gesamten Plugins nach dem Entpacken führt zu Inkompatibilität.

Allgemeine Migrationsanleitung

Um auf die neue Version zu migrieren, müssen Sie zunächst das Plug-in-Paket der alten Version mit dem Package Manager-Fenster löschen und das neue Paket hinzufügen.

Es wird empfohlen, die folgenden Schritte auszuführen:

  1. Schließen Sie die laufende Unity-Instanz.
  2. Löschen Sie das von Unity beim Packen der App generierte Plattformkompilierungsverzeichnis.
  3. Öffnen Sie das Unity-Projekt erneut und entfernen Sie das EasyAR Sense Unity Plug-in der alten Version aus dem Projekt.
  4. Importieren Sie die neue Version des EasyAR Sense Unity Plug-ins.

Anmerkung

Es ist nicht garantiert, dass die von dem Plug-in bereitgestellten Beispieldateien zwischen den Versionen kompatibel sind. Nach der Plug-in-Upgrade können die in das Projekt importierten Beispiele möglicherweise nicht ordnungsgemäß funktionieren. Es wird empfohlen, die Beispiele der alten Version zu löschen, bevor Sie fortfahren.

EasyAR enthält native Bibliotheksdateien. Wenn Sie vor dem Löschen oder Ersetzen Bibliotheksfunktionen aufgerufen haben (z. B. beim Packen der App), werden diese Bibliotheksdateien vom System gesperrt und können nicht gelöscht oder ersetzt werden.

Wichtig

Bevor Sie die alte Version löschen, müssen Sie sicherstellen, dass keine Szene im Editor ausgeführt oder keine App für eine Plattform gepackt wird. Im Allgemeinen wird empfohlen, Unity vor dem Löschen oder Ersetzen des Pakets zu schließen und es direkt nach dem erneuten Öffnen zu ersetzen.

Bevor Sie die App mit dem neuen Plug-in erneut packen, müssen Sie zunächst das von Unity beim Packen generierte Plattformkompilierungsverzeichnis löschen, einschließlich des Gradle -Projektverzeichnisses, das beim Packen für Android generiert wird, und des Xcode -Verzeichnisses, das beim Packen für iOS generiert wird.

Tipp

Normalerweise befinden sich diese Verzeichnisse möglicherweise im Library -Ordner des Unity-Projekts (z. B. Library/Bee/Android/Prj/IL2CPP/Gradle), aber dies kann je nach Unity-Version unterschiedlich sein.

Wenn Sie die App bereits gepackt haben, aber das Verzeichnis für die entsprechende Plattform nicht finden können, wird empfohlen, den gesamten Library -Ordner zu löschen.

Wenn nach der Migration die Ausnahme SchemaHashNotMatched auftritt, gibt es normalerweise zwei Möglichkeiten:

  1. Die obigen Schritte wurden nicht korrekt ausgeführt, was zu einem fehlgeschlagenen oder unvollständigen Upgrade führte, oder das von Unity generierte Kompilierungsverzeichnis wurde nicht korrekt aktualisiert (Hinweis: Wenn Sie es nicht manuell gelöscht haben, besteht eine hohe Wahrscheinlichkeit, dass es zu einem Fehler kommt). Es wird empfohlen, die empfohlenen Schritte auszuführen oder das Projekt ohne Library -Cache neu zu kompilieren.
  2. Sie haben die tgz-Datei von EasyAR manuell geändert oder das gesamte Plug-in nach dem Entpacken nicht vollständig aktualisiert. In diesem Fall kann EasyAR die Funktionsfähigkeit nicht garantieren. Sie müssen das richtige Paket erneut herunterladen und importieren.
Wichtig

Da sich die Bibliotheksdateien von EasyAR Sense und die Positionen der gepackten Bibliotheksdateien möglicherweise ändern, müssen Sie alle mit EasyAR verbundenen Dateien, wie z. B. EasyAR.aar, libEasyAR.so, easyar.framework usw., vorab löschen, wenn Sie das von Unity generierte Gradle - oder Xcode -Projekt beibehalten.

Migration zu Version 4003

Tipp

Es gibt nur inkompatible Änderungen bei der Verwendung von Mega. Die Verwendung anderer Funktionen wird nicht beeinträchtigt.

Beim Migrieren von Version 4002 zu 4003 müssen Sie zusätzlich zu den oben genannten allgemeinen Migrationsrichtlinien die folgenden Punkte beachten.

Mega-Entwicklungsablauf geändert

In der Version 4003 hat sich der Entwicklungsablauf von Mega erheblich geändert. Wenn Sie zuvor andere Funktionen des EasyAR Sense Unity Plugins verwendet haben, sollten Sie mit diesem Ablauf vertraut sein.

Die Hauptänderungen umfassen Folgendes:

  • Funktionsänderungen des Pakets com.easyar.mega
    • Sie können Mega verwenden, ohne dieses Paket zu importieren. Wenn Sie jedoch block-Modelle im Editor laden möchten, um die Platzierung von Inhalten zu unterstützen, müssen Sie es weiterhin importieren.
    • Es wurde die Konfigurationsoption "Mega Block/Landmark support" hinzugefügt: Muss vor dem Packen aktiviert werden.
  • Änderungen der Editorfunktionen
    • Das Laden von block-Meshes und anderen Daten erfordert nicht mehr das Mega Studio-Tool. Selbst wenn Sie ein Markierungstool in der Szene hinzufügen, können Sie es nicht für die Unity-Entwicklung verwenden.
    • Das Komponentenpanel von MegaBlockController bietet direkt die Editorfunktionen für Blöcke, was die Verwaltung direkter macht.
    • Das Session-Validierungstool bietet mehr praktische Mega-Steuerungsoptionen und ersetzt die Funktionen im ursprünglichen Mega Studio sowie die Testfunktionen im Editor von MegaTrackerFrameFilter.
  • Änderungen des Verhaltens von Targets

Beim Migrieren von 4002 zu 4003 müssen Sie vor allem die block-Objekte in der Szene neu organisieren und die ursprünglichen Knotengruppen, die von Mega Studio generiert wurden, durch die MegaBlockController-Komponente ersetzen:

  1. Löschen Sie die ursprünglichen Knotengruppen, die von Mega Studio in der Szene generiert wurden, einschließlich des MegaBlocks-Objekts und aller darunter liegenden block-Objekte.
    • Wenn Markierungsknoten vorhanden sind, müssen Sie sie ebenfalls löschen.
    • Wenn es Inhaltsobjekte unter den block-Objekten gibt, empfehlen wir, die Inhaltsobjekte zunächst in andere Knoten zu verschieben. Achten Sie darauf, dass die lokale Transformation unverändert bleibt.
  2. Fügen Sie in der Szene Mega-Trackingziele hinzu.
    • Wenn es in der ursprünglichen Szene mehrere block-Objekte gibt, müssen Sie mehrere Mega-Trackingziele in der Szene erstellen.
    • Verschieben Sie die ursprünglichen Inhaltsobjekte unter den block-Objekten in die neu erstellten Mega-Trackingziele. Achten Sie darauf, dass die lokale Transformation unverändert bleibt.
    • Achten Sie darauf, die ID von MegaBlockController.Source zu konfigurieren. Diese ID muss mit der ID des ursprünglichen block-Objekts übereinstimmen, um sicherzustellen, dass es zur Laufzeit korrekt geladen wird.
    • Achten Sie darauf, MegaBlockController.Tracker zu konfigurieren, um den richtigen MegaTrackerFrameFilter zu verwenden.
  3. Wenn es in der ursprünglichen Szene Markierungsknoten gibt, müssen Sie ähnliche 3D-Objekt-Knoten selbst erstellen, um die Markierungsknoten zu ersetzen.
  4. Wenn es in Ihrem ursprünglichen Projekt Logik gibt, um Blöcke in Skripten zu erstellen, müssen Sie die Methode in Mega-Trackingziele hinzufügen verwenden, um sie zu ersetzen.
  5. Löschen Sie die ungültigen Skripte auf dem untergeordneten Knoten Mega Tracker (MegaTrackerFrameFilter) von AR Session (EasyAR).

Für die meisten Anwendungsfälle kann der Rest der Szene nach dem Ersetzen der block-Knoten unverändert funktionieren.

Schnittstellenänderungen

Funktionsmodul v4002 API v4003 API Verwendungsanweisungen
Mega MegaTrackerFrameFilter.BlockHolder MegaBlockController.Tracker Mega-Tracking-Ziel hinzufügen
Konfigurieren Sie den Loader an der Block-Knotenstelle anstelle des geladenen Block-Stammknotens an der Tracker-Knotenstelle.
Mega MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) MegaTrackerFrameFilter.SwitchEndPoint Mega-Tracking-Prozess steuern
Mega MegaTrackerFrameFilter.SimulatorLocation MegaTrackerFrameFilter.SimulatorLocation
Mega CloudLocalizerFrameFilter.BlockHolder MegaBlockController.Tracker Mega-Tracking-Ziel hinzufügen
Konfigurieren Sie den Loader an der Block-Knotenstelle anstelle des geladenen Block-Stammknotens an der Tracker-Knotenstelle.
Mega CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) CloudLocalizerFrameFilter.SwitchEndPoint Mega-Tracking-Prozess steuern
Mega CloudLocalizerFrameFilter.SimulatorLocation CloudLocalizerFrameFilter.SimulatorLocation
Mega MegaLocalizationResponse.Blocks MegaLocalizationResponse.Blocks Mega-Tracking-Prozess steuern
Mega Support EasyAR.Mega.Scene.BlockHolder - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.BlockHolder.MultiBlock - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.BlockHolder.BlockRoot MegaBlockController.Tracker Mega-Tracking-Ziel hinzufügen
Konfigurieren Sie den Loader an der Block-Knotenstelle anstelle des geladenen Block-Stammknotens an der Tracker-Knotenstelle.
Mega Support EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.BlockActiveController ActiveController Active-Steuerstrategie für Targets
Mega Support EasyAR.Mega.Scene.BlockController MegaBlockController Mega-Tracking-Ziel hinzufügen
Mega Support EasyAR.Mega.Scene.BlockRootController - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.LocalTransform LocalTransform
Mega Support EasyAR.Mega.Scene.Location Location
Mega Support EasyAR.Mega.Scene.LocationConverter - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.AnnotationNode - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.AnnotationGroup - Funktion wurde entfernt
Mega Support EasyAR.Mega.Scene.NavPointGraph - Funktion wurde entfernt

Migration zu Version 4002

Beim Migrieren von Version 4001 zu 4002 müssen zusätzlich zu den oben genannten allgemeinen Migrationsrichtlinien die folgenden Punkte beachtet werden.

Schnittstellenänderungen

Funktionsmodul v4001 API v4002 API Verwendungsanweisungen
Hilfsfunktion Image.Image(Buffer, PixelFormat, int, int) Image.create

Migration zu Version 4001

Tipp

Es gibt nur inkompatible Änderungen bei der Verwendung von Mega. Die Verwendung anderer Funktionen wird nicht beeinträchtigt.

Beim Migrieren von Version 4000 auf 4001 müssen Sie zusätzlich zu den oben genannten allgemeinen Migrationsrichtlinien die folgenden Punkte beachten.

Schnittstellenänderungen

Funktionsmodul v4000 API v4001 API Verwendungsanweisungen
Mega MegaTrackerFrameFilter.ResultPoseType.EnableLocalization MegaTrackerFrameFilter.EnableLocalization Steuerung des Mega-Tracking-Prozesses
Mega MegaTrackerFrameFilter.ResultPoseType.EnableStabilization - Die Funktion wurde entfernt

Historische Versionen migrieren

Beim Migrieren von Versionen vor 4000 müssen Sie sich auf die folgenden Inhalte beziehen:

Verwandte themen