Rendere il visore compatibile con EasyAR
Questo documento spiega come utilizzare il template di estensione per visori di EasyAR Sense Unity Plugin per sviluppare un'estensione di EasyAR compatibile con dispositivi head-mounted.
Prima di iniziare
Prima di iniziare lo sviluppo, è necessario comprendere come utilizzare EasyAR Sense Unity Plugin.
- Guida introduttiva
- Eseguire gli esempi AR Session, ImageTracking_Targets e SpatialMap_Dense_BallGame. Il loro comportamento è simile su smartphone e visori.
Lo sviluppo dell'estensione per visori coinvolge funzionalità di base che richiedono familiarità con:
- Comprendere AR Session
- Comprendere frame data source e external frame source
Inoltre, è necessario conoscere come sviluppare un package Unity.
Preparare il dispositivo per AR/MR
Preparare il sistema di tracciamento del movimento/VIO
Assicurarsi che l'errore di tracciamento del dispositivo sia controllato. Alcune funzionalità di EasyAR come Mega possono ridurre l'errore cumulativo del dispositivo, ma grandi errori locali possono destabilizzare gli algoritmi di EasyAR. Generalmente, ci si aspetta una deriva VIO inferiore all'1‰.
Preparare il sistema di visualizzazione
Assicurarsi che quando un oggetto virtuale con le stesse dimensioni e contorni di un oggetto reale viene posizionato nel mondo virtuale, e la sua trasformazione relativa alla telecamera virtuale corrisponde a quella dell'oggetto reale rispetto al dispositivo, l'oggetto virtuale si allinei correttamente con l'oggetto reale. Il movimento del dispositivo o della testa non dovrebbe interrompere l'effetto. Fare riferimento all'esperienza di Vision Pro.
Preparare l'SDK del dispositivo
Assicurarsi che siano disponibili API per fornire external input frame data. Questi dati dovrebbero essere generati in due e solo due istanti temporali nel sistema, garantendo che non si verifichino disallineamenti dei dati.
Utilizzare il template di estensione per visori
Importare EasyAR Sense Unity Plugin (package com.easyar.sense) tramite Package Manager window utilizzando l'installazione da file tarball locale. Estrarre il template di estensione per visori (package com.easyar.sense.ext.hmdtemplate) nella cartella Packages del progetto Unity e rinominare la cartella Samples~ in Samples.
La struttura delle cartelle dovrebbe apparire così:
.
├── Assets
└── Packages
└── com.easyar.sense.ext.hmdtemplate
├── CHANGELOG.md
├── Documentation~
├── Editor
├── LICENSE.md
├── package.json
├── Runtime
└── Samples
└── Combination_BasedOn_HMD
Consiglio
Se necessario, è possibile importare EasyAR Sense Unity Plugin e posizionare il template di estensione per visori in qualsiasi modo consentito da Unity.
Se non si utilizza il template, fare riferimento alla guida Unity per la creazione di package personalizzati per crearne uno nuovo.
Se l'SDK del dispositivo non è organizzato come package Unity, estrarre il template di estensione per visori nella cartella Assets di Unity, quindi eliminare package.json e tutti i file con estensione .asmdef. Notare che in questo caso gli utenti che utilizzano contemporaneamente l'SDK del dispositivo e EasyAR non potranno ottenere dipendenze di versione appropriate.
Completare l'estensione di input runtime
Seguire il metodo creare un'estensione di input per dati di immagine e movimento del dispositivo, modificare Runtime/HMDTemplateFrameSource.cs e completare l'estensione di input per il visore. Questo è il lavoro principale dello sviluppo dell'estensione.
Completare il menu dell'editor
Modificare la stringa "HMD Template" nella classe MenuItems con il nome rappresentativo del dispositivo. Se sono necessarie altre funzionalità personalizzate nell'editor, aggiungere altri script.
Quando gli sviluppatori selezionano AR Session (EasyAR) nella vista Hierarchy e fanno clic destro, appariranno queste voci di menu:
EasyAR Sense>Extensions>Frame Source : [Nome dispositivo]: aggiunge una sorgente frame per questo dispositivo alla sessione corrente.EasyAR Sense>Extensions>Frame Source : [Nome dispositivo (keep it only)]: aggiunge e mantiene solo una sorgente frame per questo dispositivo nella sessione corrente.

Completare l'esempio di applicazione
L'esempio si trova in Samples/Combination_BasedOn_HMD. Per semplicità, il template di esempio non contiene codice: tutte le funzionalità AR sono gestite dal contenuto e dalla configurazione della scena.
Aggiungere contenuti compatibili con il dispositivo alla scena.
Consiglio
Se necessario, è possibile fare l'opposto: utilizzare una scena funzionante sul dispositivo, quindi aggiungere componenti EasyAR e altri oggetti dagli esempi.
Modificare gli oggetti progettati per essere posizionati sotto l'origine della sessione.
Se la scena definisce un'origine della sessione, spostare
EasyARPandaeUIsotto il nodo di origine.
EasyARPandafornisce un riferimento per il comportamento del tracciamento del movimento del dispositivo, aiutando a diagnosticare instabilità nel tracciamento.Eliminare il testo tra parentesi (avvisi per gli sviluppatori):
(Move into Origin if there is any)(Move into Origin if there is any, set constraint source to your rendering camera)
Configurare il comportamento dei pulsanti
HUD.Impostare la constraint source di
UIsulla telecamera virtuale per garantire il corretto funzionamento dei pulsantiHUD.
Configurare la funzionalità raycast di
Canvas.Modificare
Canvassotto il nodoUIper garantire che il raycast funzioni, assicurando il corretto comportamento di pulsanti e interruttori UI.Il template include preconfigurato Tracked Device Graphic Raycaster di XR Interaction Toolkit sotto il nodo
Canvas. Dopo l'importazione del package corrispondente, sarà visibile.
Se non si utilizza XR Interaction Toolkit durante l'esecuzione sul dispositivo, apparirà un avviso di script mancante. Eliminarlo e aggiungere il componente raycaster richiesto dal dispositivo.

Passi successivi
- Prima di completare l'estensione, eseguire la verifica operativa (bring-up) dell'estensione di input
- Dopo il completamento, preparare la distribuzione dell'estensione