Rendere il visore compatibile con EasyAR
Questo articolo spiega come usare il modello di pacchetto di estensione per visore di EasyAR Sense Unity Plugin per sviluppare un pacchetto di estensione EasyAR compatibile con dispositivi tipo visore.
Prima di iniziare
Prima di entrare nello sviluppo, è necessario capire prima come usare EasyAR Sense Unity Plugin.
- Avvio rapido
- Esegui l'esempio AR Session, l'esempio di tracking delle immagini ImageTracking_Targets e l'esempio di mappa spaziale densa SpatialMap_Dense_BallGame; il loro comportamento su telefono e su visore è simile.
Lo sviluppo del plugin per visore coinvolgerà funzioni di base, quindi è necessario conoscere prima questi contenuti:
- Conoscere AR Session
- Conoscere sorgente frame e sorgente frame esterna
Inoltre, è necessario avere familiarità con come sviluppare un package Unity.
Preparare il dispositivo per AR/MR
Preparare il sistema di tracking del movimento/VIO
Assicurati che l'errore di tracking del dispositivo sia sotto controllo. Alcune funzioni di EasyAR come Mega possono ridurre in una certa misura l'errore accumulato del dispositivo, ma un grande errore locale renderà anche instabili gli algoritmi di EasyAR. In generale, ci aspettiamo che il drift VIO resti entro l'1‰.
Preparare il sistema di visualizzazione
Assicurati che, quando un oggetto virtuale con le stesse dimensioni e lo stesso contorno di un oggetto reale viene posizionato nel mondo virtuale e la relazione di trasformazione relativa tra esso e la telecamera virtuale è la stessa della relazione di trasformazione tra l'oggetto reale corrispondente e il dispositivo nel mondo reale, l'oggetto virtuale possa essere visualizzato allineato sull'oggetto reale e che muovere il dispositivo o ruotare la testa non rovini l'effetto visivo. Puoi fare riferimento all'effetto di Vision Pro.
Preparare l'SDK del dispositivo
Assicurati che esista già una API in grado di fornire dati di frame di input esterni. Questi dati devono essere generati da due e soltanto due istanti temporali nel sistema, e bisogna garantire che non si verifichino situazioni in cui i dati non possano essere allineati.
Usare il modello di pacchetto di estensione per visore
Importa EasyAR Sense Unity Plugin (pacchetto com.easyar.sense) tramite la finestra Package Manager di Unity, usando l'installazione da un file tarball locale. Decomprimi il modello di estensione per visore (pacchetto com.easyar.sense.ext.hmdtemplate) nella directory Packages del progetto Unity, quindi rinomina la cartella Samples~ in Samples.
A questo punto dovresti vedere una struttura di directory come questa:
.
├── Assets
└── Packages
└── com.easyar.sense.ext.hmdtemplate
├── CHANGELOG.md
├── Documentation~
├── Editor
├── LICENSE.md
├── package.json
├── Runtime
└── Samples
└── Combination_BasedOn_HMD
Consiglio
Se necessario, puoi usare qualsiasi metodo consentito da Unity per importare EasyAR Sense Unity Plugin e ospitare il modello di estensione per visore.
Se non usi il modello, puoi anche fare riferimento alla guida di Unity per creare package personalizzati per creare un nuovo package.
Se l'SDK del dispositivo non è organizzato come package Unity, devi decomprimere il modello di estensione per visore nella cartella Assets del progetto Unity, quindi rimuovere dal contenuto estratto il file package.json e qualsiasi file con estensione .asmdef. Tieni presente che in questo modo gli utenti che usano insieme l'SDK del dispositivo ed EasyAR non potranno ottenere una dipendenza di versione ragionevole.
Completare l'estensione di input runtime
Seguendo il metodo di creazione di un'estensione di input per dati di movimento del dispositivo e immagine, modifica Runtime/HMDTemplateFrameSource.cs e completa l'estensione di input adatta al visore. Questo è il principale lavoro di sviluppo del pacchetto di estensione.
Completare il menu dell'editor
Modifica la stringa "HMD Template" nella classe MenuItems con il nome del dispositivo. Se hai bisogno di altre funzioni personalizzate dell'editor, puoi aggiungere anche altri script.
Quando lo sviluppatore seleziona AR Session (EasyAR) nella vista Hierarchy e fa clic con il tasto destro, compariranno queste voci di menu:
EasyAR Sense>Extensions>Frame Source : [Device Name]: aggiunge una sorgente frame di quel dispositivo alla sessione corrente.EasyAR Sense>Extensions>Frame Source : [Device Name (keep it only)]: aggiunge una sorgente frame di quel dispositivo alla sessione corrente e ne mantiene solo una.

Completare l'esempio di applicazione
L'esempio si trova in Samples/Combination_BasedOn_HMD. Per semplicità, il modello di esempio non contiene codice; tutte le funzioni AR possono essere completate solo con i contenuti della scena e la configurazione.
Aggiungi alla scena contenuti che supportino l'esecuzione sul dispositivo.
Consiglio
Se necessario, puoi anche fare il contrario: usare una scena che possa essere eseguita sul dispositivo e poi aggiungere i componenti EasyAR e gli altri oggetti della scena di esempio alla scena.
Modifica gli oggetti progettati per essere posizionati sotto l'origine della sessione.
Se la scena definisce un'origine della sessione, sposta
EasyARPandaeUIsotto il nodo di origine.
EasyARPandafornirà un riferimento del comportamento di tracking del movimento del dispositivo, utile per capire la causa quando il tracking è instabile.Il testo tra parentesi nei nomi di questi oggetti è un suggerimento per lo sviluppatore dell'estensione e può essere rimosso:
(Move into Origin if there is any)(Move into Origin if there is any, set constraint source to your rendering camera)
Configura il comportamento del pulsante
HUD.Imposta la constraint source di
UIsulla telecamera virtuale per garantire che i pulsantiHUDfunzionino come previsto.
Configura la funzione raycast di
Canvas.Modifica il
Canvassotto il nodoUIper assicurarti che il raycast funzioni e che tutti i pulsanti e gli interruttori UI funzionino come previsto.Il modello ha già aggiunto in anticipo il Tracked Device Graphic Raycaster di XR Interaction Toolkit sotto il nodo
Canvas; dopo aver importato il package corrispondente potrai vederlo.
Se durante l'esecuzione sul dispositivo non usi XR Interaction Toolkit, vedrai un avviso simile a quello seguente relativo a uno script mancante; puoi eliminarlo e aggiungere il componente raycaster richiesto dal dispositivo.

Passi successivi
- Prima di completare del tutto il pacchetto di estensione, devi prima eseguire il bring-up di verifica dell'estensione di input
- Una volta completato tutto, puoi preparare la pubblicazione del pacchetto di estensione