Table of Contents

Commutazione automatica degli oggetti Unity XR nella scena Unity

I componenti XR di Unity (incluso AR Foundation) supportano solo un numero limitato di dispositivi. Per utilizzare AR Foundation sui dispositivi supportati e allo stesso tempo sfruttare le funzionalità AR su molti altri dispositivi, EasyAR offre la funzionalità di commutazione automatica degli oggetti Unity XR. Di seguito vengono illustrate le modifiche agli oggetti della scena e il metodo di utilizzo.

Prima di iniziare

Funzionalità

Poiché l'implementazione sottostante di AR Foundation di Unity sui telefoni è ARCore e ARKit, utilizzabile solo su un numero limitato di dispositivi, specialmente su molti telefoni Android cinesi, si consiglia generalmente di abilitare AR Foundation e gli script correlati solo sui dispositivi supportati. La funzionalità di commutazione automatica degli oggetti Unity XR implementa questa operazione, progettata principalmente per AR mobile, mentre sui visori è disabilitata per impostazione predefinita.

Quando la funzionalità completa è abilitata,

Nella configurazione predefinita, le condizioni di abilitazione sono le seguenti,

  • Abilitato su Windows/Mac.
  • Abilitato se, all'avvio del commutatore, il loader per AR mobile (ARKit/ARCore) è attivo.
  • Disabilitato se, all'avvio del commutatore, sono presenti altri loader oltre ad AR mobile (ARKit/ARCore), ma nessuno di essi è attivo.
Nota

I componenti di XR Interaction Toolkit non sono controllati da questa funzionalità, ma la loro compatibilità con EasyAR non è verificata. Teoricamente, le funzionalità che utilizzano solo il GameObject Unity.XR.CoreUtils.XROrigin e la sua Camera dovrebbero funzionare normalmente. In caso di comportamenti anomali, provare a impostare ARSession.ARCenterMode su ARSession.ARCenterMode.SessionOrigin. Se la funzionalità continua a non funzionare correttamente, sarà necessario implementare un controllo personalizzato dei componenti di XR Interaction Toolkit, disabilitando i componenti correlati quando FrameSource non eredita da ARFoundationFrameSource.

Metodo di configurazione

Questa funzionalità può essere abilitata o disattivata tramite le opzioni in Project Settings > EasyAR > Sense > Unity XR > Unity XR Auto Switch.

alt text

Le opzioni nell'immagine configurano il comportamento come segue:

  • Editor: opzioni per la modalità editor
  • Player: opzioni per la modalità runtime
    • Enable: abilita il controllo durante il runtime. Nota: quando questa opzione è disattivata, i componenti disabilitati nella modalità editor non verranno ripristinati durante il runtime.
    • Enable If Desktop: abilitato su Windows/Mac.
    • Enable If Mobile AR On Startup: abilitato se, all'avvio del commutatore, il loader per AR mobile (ARKit/ARCore) è attivo. Di solito questa opzione richiede che Initialize XR on Startup in Project Settings > XR Plug-in Management sia selezionato.
    • Disable If Non Mobile AR Post Startup: disabilitato se, all'avvio del commutatore, sono presenti altri loader oltre ad AR mobile (ARKit/ARCore), ma nessuno di essi è attivo. Di solito questa opzione viene utilizzata quando Initialize XR on Startup in Project Settings > XR Plug-in Management non è selezionato.
    • Restore AR Session When Disabled: quando la funzionalità è disabilitata, ripristina (abilita) tutti i UnityEngine.XR.ARFoundation.ARSession disabilitati (indipendentemente dal fatto che siano stati disabilitati da EasyAR). Questa opzione viene solitamente utilizzata per ripristinare i componenti disabilitati durante l'editing.

Utilizzo di un metodo di controllo personalizzato

Se è necessario personalizzare la commutazione di questi componenti o se il comportamento di EasyAR interferisce con il funzionamento di alcuni componenti, assicurarsi di disattivare queste opzioni e seguire le seguenti regole di base per la commutazione personalizzata dei componenti:

  1. Disabilitare UnityEngine.XR.ARFoundation.ARSession nell'editor (viene eseguito prima di tutti gli altri script)
  2. Disabilitare tutti i componenti Unity XR Core, AR Foundation e i componenti o funzionalità correlati che devono essere controllati prima che AR Foundation inizi a funzionare
  3. Se durante il processo easyar.ARSession.Assemble() viene selezionato ARCoreARFoundationFrameSource o ARKitARFoundationFrameSource, abilitare tutti i componenti o funzionalità precedentemente disabilitati prima del completamento di StartSession(), solitamente consigliato durante la risposta all'evento easyar.ARSession.AssembleUpdate
  4. Se durante il processo easyar.ARSession.Assemble() viene selezionato un altro FrameSource, mantenere lo stato invariato

Argomenti correlati