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
- Überprüfen Sie Ist meine Lokalisierungsbibliothek einsatzbereit?
- Importieren Sie die neueste Version des EasyAR-Plugins, um Mega-Funktionen zu aktivieren
- Verstehen Sie die grundlegenden Konzepte und Verwendungsmethoden von Unity AR-Trackingzielen
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.

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.

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.

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.

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.

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;

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

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

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

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:

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

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.