Table of Contents

Migrationsanleitung für EasyAR Sense Unity Plugin

Dieser Artikel beschreibt, wie Sie von älteren Versionen von EasyAR Sense Unity Plugin auf neuere Versionen migrieren.

Kompatibilitätserklärung

Ab Version 4000 folgt EasyAR Sense Unity Plugin der von Unity geforderten Paketversionsverwaltung (Semantic Versioning), daher kann die Kompatibilität anhand der Versionsnummer beurteilt werden.

Version 4.7 ist eine schrittweise Update-Version; keine zwei 4.7-Versionen sind miteinander kompatibel.

Vor 4.7 zeigt nur die dritte Versionsnummer die Rückwärtskompatibilität an. Änderungen an den ersten beiden Versionsnummern bedeuten Inkompatibilität. Beispielsweise ist 4.6.2 mit 4.6.1 kompatibel, 4.6.0 jedoch nicht mit 4.5.0.

Warnung

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

Allgemeine Migrationsanleitung

Um auf eine neue Version zu migrieren, entfernen Sie zunächst das alte Plugin-Paket über das Package Manager window und fügen Sie das neue Paket hinzu.

Es wird empfohlen, die folgenden Schritte auszuführen:

  1. Schließen Sie Unity.
  2. Löschen Sie das von Unity beim Bauen erzeugte platform build Verzeichnis.
  3. Öffnen Sie das Unity project erneut und entfernen Sie die alte Version von EasyAR Sense Unity Plugin aus dem project.
  4. Importieren Sie die neue Version von EasyAR Sense Unity Plugin.

Anmerkung

Die mit dem Plugin gelieferten Beispieldateien sind nicht versionsübergreifend kompatibel garantiert. Nach dem Plugin-Update können importierte Beispiele im project möglicherweise nicht mehr richtig funktionieren. Es wird empfohlen, alte Beispiele vor dem Fortfahren zu löschen.

EasyAR enthält native library files. Wenn diese files vor dem Löschen oder Ersetzen bereits verwendet wurden, werden sie vom System gesperrt und können nicht gelöscht oder ersetzt werden.

Wichtig

Bevor Sie die alte Version löschen, stellen Sie sicher, dass im editor keine scene ausgeführt wird und kein platform application Build läuft. Es wird normalerweise empfohlen, Unity zuerst zu schließen, dann das package zu löschen oder zu ersetzen und es unmittelbar nach dem erneuten Öffnen zu ersetzen.

Bevor Sie mit der neuen Plugin-Version erneut bauen, löschen Sie zuerst die von Unity erzeugten platform build directories, einschließlich des Gradle-Verzeichnisses für Android und des Xcode-Verzeichnisses für iOS.

Tipp

Diese Verzeichnisse befinden sich normalerweise im Library-Ordner des Unity projects, zum Beispiel Library/Bee/Android/Prj/IL2CPP/Gradle, können sich aber je nach Unity-Version unterscheiden.

Wenn Sie bereits gebaut haben, aber das entsprechende platform directory nicht finden, wird empfohlen, den gesamten Library-Ordner zu löschen.

Wenn nach der Migration die Exception SchemaHashNotMatched auftritt, gibt es meist zwei Möglichkeiten:

  1. Die vorherigen Schritte wurden nicht korrekt ausgeführt, sodass das Update fehlgeschlagen oder unvollständig ist, oder das von Unity erzeugte build directory wurde nicht korrekt aktualisiert. Wenn es nicht manuell gelöscht wird, tritt der Fehler sehr wahrscheinlich auf. Es wird empfohlen, die empfohlenen Schritte auszuführen oder mit einem project ohne Library cache neu zu bauen.
  2. Die EasyAR-tgz-Datei wurde manuell geändert oder das gesamte Plugin wurde nach dem Entpacken nicht vollständig aktualisiert. In diesem Fall kann EasyAR die Verwendbarkeit nicht garantieren; Sie müssen das richtige Paket erneut herunterladen und importieren.
Wichtig

Da sich die library files von EasyAR Sense und deren Speicherort nach dem Bauen ändern können, müssen Sie, wenn Sie das von Unity erzeugte Gradle- oder Xcode-Projekt behalten, vorher alle EasyAR-bezogenen Dateien löschen, etwa EasyAR.aar, libEasyAR.so, easyar.framework und so weiter.

Migration auf Version 4003

Tipp

Nur bei der Verwendung von Mega gibt es inkompatible Änderungen; die Nutzung anderer Funktionen ist nicht betroffen.

Bei der Migration von Version 4002 auf 4003 müssen Sie zusätzlich zur obigen allgemeinen Migrationsanleitung auch Folgendes beachten.

Änderungen am Mega-Entwicklungsablauf

In Version 4003 hat sich der Mega-Entwicklungsablauf stark geändert. Wenn Sie zuvor schon andere Funktionen von EasyAR Sense Unity Plugin verwendet haben, ist dieser Ablauf vertrauter.

Die wichtigsten Änderungen sind:

  • Änderungen an den Funktionen des Pakets com.easyar.mega
    • Für die Nutzung von Mega muss dieses Paket nicht mehr zwingend importiert werden; aber um block models im editor zu laden und das Platzieren von Inhalten zu unterstützen, wird es weiterhin benötigt.
    • Eine Konfigurationsoption für Mega Block/Landmark support wurde hinzugefügt: vor dem Build aktivieren.
  • Änderungen an den editor-Funktionen
    • Das Laden von block mesh und anderen Daten benötigt nicht mehr das Mega Studio tool, und selbst wenn ein Annotations-Tool zur scene hinzugefügt wird, kann es nicht für Unity development verwendet werden.
    • Das Komponentenfenster MegaBlockController stellt die editor-Funktionen für block direkt bereit und macht die Verwaltung direkter.
    • session verification tool bietet mehr nützliche Mega control options und ersetzt die früheren Funktionen von Mega Studio sowie den editor-Testbereich von MegaTrackerFrameFilter.
  • Änderungen am target-Verhalten

Bei der Migration von 4002 auf 4003 ist es am wichtigsten, die block objects in der scene neu zu strukturieren und die zuvor von Mega Studio erzeugte node-Gruppe durch die Komponente MegaBlockController zu ersetzen:

  1. Löschen Sie in der scene die zuvor von Mega Studio erzeugte node-Gruppe, einschließlich des Objekts MegaBlocks und aller darunterliegenden block objects.
    • Falls Annotation nodes vorhanden sind, müssen diese ebenfalls gelöscht werden.
    • Falls block objects content objects enthalten, wird empfohlen, diese content objects zuerst in andere nodes zu verschieben und local transform unverändert zu lassen.
  2. Fügen Sie Mega target tracking hinzu in der scene.
    • Wenn die ursprüngliche scene mehrere block objects enthielt, müssen Sie mehrere Mega target tracking objects erstellen.
    • Verschieben Sie die content objects, die sich zuvor unter den block objects befanden, unter die neu erstellten Mega target tracking objects und lassen Sie local transform unverändert.
    • Achten Sie auf die id-Einstellung von MegaBlockController.Source; diese id muss mit der id des ursprünglichen block objects übereinstimmen, damit das runtime es korrekt laden kann.
    • Achten Sie auf die Einstellung von MegaBlockController.Tracker, damit der richtige MegaTrackerFrameFilter verwendet wird.
  3. Wenn die ursprüngliche scene Annotation nodes enthielt, müssen Sie manuell ähnliche nodes als Ersatz erstellen.
  4. Wenn das ursprüngliche project eine Logik zum Erstellen von blocks im script enthielt, verwenden Sie stattdessen die Methode aus Mega target tracking hinzufügen.
  5. Entfernen Sie das ungültige Script am untergeordneten node Mega Tracker (MegaTrackerFrameFilter) unter AR Session (EasyAR).

Für die meisten Fälle muss nach dem Ersetzen der block nodes der restliche scene content nicht geändert werden und kann normal funktionieren.

API-Änderungen

Modul v4002 API v4003 API Beschreibung
Mega MegaTrackerFrameFilter.BlockHolder MegaBlockController.Tracker Mega target tracking hinzufügen
Am block node wird der loader statt des block root konfiguriert, der zuvor am tracker node konfiguriert wurde.
Mega MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) MegaTrackerFrameFilter.SwitchEndPoint Mega tracking process steuern
Mega MegaTrackerFrameFilter.SimulatorLocation MegaTrackerFrameFilter.SimulatorLocation
Mega CloudLocalizerFrameFilter.BlockHolder MegaBlockController.Tracker Mega target tracking hinzufügen
Am block node wird der loader statt des block root konfiguriert, der zuvor am tracker node konfiguriert wurde.
Mega CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) CloudLocalizerFrameFilter.SwitchEndPoint Mega tracking process steuern
Mega CloudLocalizerFrameFilter.SimulatorLocation CloudLocalizerFrameFilter.SimulatorLocation
Mega MegaLocalizationResponse.Blocks MegaLocalizationResponse.Blocks Mega tracking process steuern
Mega Support EasyAR.Mega.Scene.BlockHolder - Funktion entfernt
Mega Support EasyAR.Mega.Scene.BlockHolder.MultiBlock - Funktion entfernt
Mega Support EasyAR.Mega.Scene.BlockHolder.BlockRoot MegaBlockController.Tracker Mega target tracking hinzufügen
Am block node wird der loader statt des block root konfiguriert, der zuvor am tracker node konfiguriert wurde.
Mega Support EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType - Funktion entfernt
Mega Support EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy - Funktion entfernt
Mega Support EasyAR.Mega.Scene.BlockActiveController ActiveController Für targets geltende active control strategy
Mega Support EasyAR.Mega.Scene.BlockController MegaBlockController Mega target tracking hinzufügen
Mega Support EasyAR.Mega.Scene.BlockRootController - Funktion entfernt
Mega Support EasyAR.Mega.Scene.LocalTransform LocalTransform
Mega Support EasyAR.Mega.Scene.Location Location
Mega Support EasyAR.Mega.Scene.LocationConverter - Funktion entfernt
Mega Support EasyAR.Mega.Scene.AnnotationNode - Funktion entfernt
Mega Support EasyAR.Mega.Scene.AnnotationGroup - Funktion entfernt
Mega Support EasyAR.Mega.Scene.NavPointGraph - Funktion entfernt

Migration auf Version 4002

Bei der Migration von Version 4001 auf 4002 müssen Sie zusätzlich zur obigen allgemeinen Migrationsanleitung auch Folgendes beachten.

API-Änderungen

Modul v4001 API v4002 API Beschreibung
Hilfsfunktion Image.Image(Buffer, PixelFormat, int, int) Image.create

Migration auf Version 4001

Tipp

Nur bei der Verwendung von Mega gibt es inkompatible Änderungen; die Nutzung anderer Funktionen ist nicht betroffen.

Bei der Migration von Version 4000 auf 4001 müssen Sie zusätzlich zur obigen allgemeinen Migrationsanleitung auch Folgendes beachten.

API-Änderungen

Modul v4000 API v4001 API Beschreibung
Mega MegaTrackerFrameFilter.ResultPoseType.EnableLocalization MegaTrackerFrameFilter.EnableLocalization Mega tracking process steuern
Mega MegaTrackerFrameFilter.ResultPoseType.EnableStabilization - Funktion entfernt

Historische Migration

Bei der Migration aus Versionen vor 4000 beachten Sie:

Verwandte Themen