Table of Contents

Hinzufügen von Mega-Trackingzielen

Dieser Artikel beschreibt, wie Mega-Trackingziele hinzugefügt werden und wie Umgebungsmodelle im Unity-Editor geladen werden können, um die Entwicklung zu unterstützen.

Vor dem Start

Anmerkung

Die folgenden Inhalte und Tools gelten nur für die Entwicklung von Unity-Anwendungen mit EasyAR Mega.

Wenn Sie Mini-Programme entwickeln, lesen Sie bitte Erstellen und Hochladen von Annotationen mit dem Unity-Editor (Mini-Programm-Entwicklung).

Wenn Sie nur die Mega-Mapping-Ergebnisse anzeigen möchten, lesen Sie bitte 3D-Echtzeit-Mesh-Vorschau im Mega-Benutzerhandbuch.

Wenn Sie eine Simulation durchführen möchten, um den Lokalisierungseffekt zu überprüfen, aber kein funktionierendes Unity-Projekt haben, lesen Sie bitte Effektvorschau durch Simulationslauf im Mega-Benutzerhandbuch.

Mega-Trackingziele

Mega-Trackingziele sind leere GameObjects mit einer BlockController-Komponente, genannt Block. In der Szene werden Blöcke unter einem leeren GameObject mit einer BlockRootController-Komponente organisiert, dessen Standardname MegaBlocks ist. Alle Block-Objekte unter MegaBlocks repräsentieren die Trackingziele in der aktuellen Lokalisierungsbibliothek.

alt text

Bei der Entwicklung wird häufig ein Blockmodell benötigt, um die Platzierung von 3D-Inhalten zu unterstützen. Dieses Modell kann mit einem Tool in die Szene geladen werden.

alt text

Die Modellposition ist mit dem Block-Trackingziel ausgerichtet, sodass 3D-Inhalte direkt auf dem Modell platziert werden können.

Tipp

Modelle werden unter Tool-Knoten gespeichert, existieren nur im Editor-Modus und werden nicht in die finale Anwendung gebuildet.

Hinzufügen von Trackingzielen im Editor

Diese Methode erfordert, dass BlockHolder.BlockRootSource auf External (Standard) oder Mixed konfiguriert ist.

alt text

Hinzufügen des Block Viewer for Unity Developer-Tools

Klicken Sie mit der rechten Maustaste auf einen leeren Bereich in der Hierarchy-Ansicht und wählen Sie EasyAR Mega > Tool > Block Viewer for Unity Developer (Edit Mode), um das Block Viewer-Tool für Unity-Entwickler hinzuzufügen.

alt text

Wichtig

Verwenden Sie bei der Entwicklung von Mega-Anwendungen mit Unity unbedingt das Block Viewer for Unity Developer-Tool. Andere Tools unter EasyAR Mega > Tool sind für die Unity-Anwendungsentwicklung nicht geeignet.

Obwohl das Annotation Tool ähnliche Funktionen bietet, werden Teile davon in zukünftigen Versionen entfernt, daher wird es nicht empfohlen.

Die Annotationsfunktion des Annotation Tool (nur die Annotation selbst) wird bald in das EasyAR Developer Center Web migriert; das Laden von Block-Meshes und die Modellplatzierung bleiben davon unberührt.

Nach erfolgreichem Hinzufügen erscheinen in der Szenenhierarchie ein EasyAR.Mega.BlockViewer (Dev)-Knoten und ein MegaBlocks-Knoten.

alt text

Generieren von Trackingzielen – Blöcke

Wählen Sie den EasyAR.Mega.BlockViewer (Dev)-Knoten aus und geben Sie im Inspector-Bereich Ihre EasyAR-Kontoinformationen ein;

alt text

Klicken Sie auf die Schaltfläche rechts neben Mega Cloud Service;

alt text

Wählen Sie den gewünschten Mega-Lokalisierungsdienst und klicken Sie auf Bestätigen.

alt text

Nach der Auswahl wird die Blockliste der aktuellen Bibliothek unter dem MegaBlocks-Knoten angezeigt und im Tool-Panel sichtbar.

alt text

Tipp

Warum ist mein MegaBlocks-Knoten leer?

Überprüfen Sie Ist meine Lokalisierungsbibliothek einsatzbereit?

Zu diesem Zeitpunkt wurden die Block-Trackingziele generiert. Jeder Block_-beginnde Unterknoten unter MegaBlocks repräsentiert ein Block-Trackingziel.

Laden von Blockmodellen

Klicken Sie auf Ausgewählte Blöcke laden:

alt text

Nach dem Laden wird der Block im Scene-Fenster angezeigt.

alt text

Automatisches Hinzufügen von Trackingzielen bei erfolgreicher Lokalisierung

Diese Methode erfordert, dass BlockHolder.BlockRootSource auf Internal oder Mixed konfiguriert ist.

In diesen Modi wird, wenn ein neuer Block lokalisiert wird und dieser nicht unter dem BlockHolder.BlockRoot-Knoten existiert, automatisch ein neuer Block unter BlockHolder.BlockRoot hinzugefügt. Falls BlockHolder.BlockRoot nicht existiert, wird es automatisch erstellt.

Tipp

Beim automatischen Hinzufügen von Trackingzielen bei erfolgreicher Lokalisierung können keine Blockmodelle geladen werden; es werden nur Block-Trackingziele hinzugefügt.

Hinzufügen von Trackingzielen per Skript

Diese Methode erfordert, dass BlockHolder.BlockRootSource auf Internal oder Mixed konfiguriert ist. In diesem Fall wird BlockHolder.BlockRoot bei Bedarf automatisch erstellt. Alternativ kann BlockHolder.BlockRoot auch im Editor festgelegt werden, wenn BlockHolder.BlockRootSource auf External gesetzt ist.

Anmerkung

Wenn ein Block nicht in der Lokalisierungsbibliothek vorhanden ist, kann er nicht lokalisiert werden, selbst wenn er per Skript zur Szene hinzugefügt wird.

Verwenden Sie die Methode BlockHolder.Hold, um einen neuen Block unter BlockHolder.BlockRoot hinzuzufügen. Diese Methode wird typischerweise verwendet, wenn Skripte Blockinformationen aus EMA-Annotationsdateien lesen und Blöcke hinzufügen.

Der folgende Codeausschnitt zeigt beispielsweise, wie Blockinformationen aus einer Annotationsdatei verwendet werden:

foreach (var item in ema.blocks)
{
    var info = new BlockController.BlockInfo { ID = item.id.ToString(), Timestamp = item.timestamp };
    if (!item.keepTransform && item.location.OnSome)
    {
        blockHolder.Hold(info, item.location.Value);
    }
    else
    {
        blockHolder.Hold(info, item.transform.ToUnity());
    }
}
Tipp

Beim Hinzufügen von Trackingzielen per Skript zur Laufzeit können keine Blockmodelle geladen werden; es werden nur Block-Trackingziele hinzugefügt.

Nächste Schritte

Verwandte Themen