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:
- Schließen Sie Unity.
- Löschen Sie das von Unity beim Bauen erzeugte platform build Verzeichnis.
- Öffnen Sie das Unity project erneut und entfernen Sie die alte Version von EasyAR Sense Unity Plugin aus dem project.
- 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:
- 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
Librarycache neu zu bauen. - 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
- EasyAR.Mega.Scene.BlockController wurde durch MegaBlockController ersetzt. MegaBlockController ist eine Unterklasse von TargetController und folgt dem standardmäßigen target behavior mode sowie der für targets geltenden active control strategy.
- EasyAR.Mega.Scene.BlockRootController wurde entfernt; blocks haben kein root node mehr und sind jeweils eigenständig.
- MegaBlockController kann über ARSessionFactory.CreateController erstellt werden.
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:
- Löschen Sie in der scene die zuvor von Mega Studio erzeugte node-Gruppe, einschließlich des Objekts
MegaBlocksund 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.
- 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.
- Wenn die ursprüngliche scene Annotation nodes enthielt, müssen Sie manuell ähnliche nodes als Ersatz erstellen.
- 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.
- Entfernen Sie das ungültige Script am untergeordneten node
Mega Tracker(MegaTrackerFrameFilter) unterAR 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: