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:
- Schließen Sie die laufende Unity-Instanz.
- Löschen Sie das von Unity beim Packen der App generierte Plattformkompilierungsverzeichnis.
- Öffnen Sie das Unity-Projekt erneut und entfernen Sie das EasyAR Sense Unity Plug-in der alten Version aus dem Projekt.
- 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:
- 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. - 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
- EasyAR.Mega.Scene.BlockController wurde durch MegaBlockController ersetzt. MegaBlockController ist eine Unterklasse von TargetController und folgt dem standardmäßigen Verhaltensmuster von Targets sowie der Aktivierungssteuerungsstrategie für Targets.
- EasyAR.Mega.Scene.BlockRootController wurde entfernt. Blöcke haben keine Wurzelknoten mehr und sind voneinander unabhängig.
- MegaBlockController kann mit ARSessionFactory.CreateController erstellt werden.
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:
- 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.
- 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.
- Wenn es in der ursprünglichen Szene Markierungsknoten gibt, müssen Sie ähnliche 3D-Objekt-Knoten selbst erstellen, um die Markierungsknoten zu ersetzen.
- 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.
- Löschen Sie die ungültigen Skripte auf dem untergeordneten Knoten
Mega Tracker(MegaTrackerFrameFilter) vonAR 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: