Table of Contents

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:

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.

alt text

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.

  1. 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.

  2. Modificare gli oggetti progettati per essere posizionati sotto l'origine della sessione.

    Se la scena definisce un'origine della sessione, spostare EasyARPanda e UI sotto il nodo di origine.

    alt text

    EasyARPanda fornisce 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)
  3. Configurare il comportamento dei pulsanti HUD.

    Impostare la constraint source di UI sulla telecamera virtuale per garantire il corretto funzionamento dei pulsanti HUD.

    alt text

  4. Configurare la funzionalità raycast di Canvas.

    Modificare Canvas sotto il nodo UI per 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.

    alt text

    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.

    alt text

Passi successivi

Argomenti correlati