Table of Contents

Passare automaticamente tra oggetti Unity XR nelle scene Unity

I componenti XR di Unity (incluso AR Foundation) supportano un numero limitato di dispositivi. Per usare AR Foundation sui dispositivi supportati e al tempo stesso fornire funzioni AR su molti altri dispositivi, EasyAR offre una funzione per passare automaticamente tra oggetti Unity XR. Il contenuto seguente descrive le modifiche apportate agli oggetti della scena e come usare questa funzione.

Prima di iniziare

Introduzione alla funzione

Poiché l'implementazione sottostante di AR Foundation di Unity su telefoni è ARCore e ARKit, può essere usata solo su dispositivi limitati, soprattutto non è disponibile su molti telefoni Android domestici cinesi. Per questo si consiglia in genere di abilitare AR Foundation e gli script funzionali correlati solo sui dispositivi supportati. La funzione di passaggio automatico tra oggetti Unity XR implementa questa operazione, è progettata principalmente per mobile AR e sui visori è disabilitata nella configurazione predefinita.

Quando la funzione completa è abilitata,

Nella configurazione predefinita, le condizioni di abilitazione della funzione sono:

  • Abilitata su Windows/Mac.
  • All'avvio dello switcher, se il loader mobile AR (ARKit/ARCore) è attivo, viene abilitata.
  • All'avvio dello switcher, se esistono altri loader oltre a mobile AR (ARKit/ARCore), ma nessun loader è attivo, viene disabilitata.
Nota

I componenti di XR Interaction Toolkit non sono controllati da questa funzione, e la loro disponibilità in EasyAR non è stata verificata. In teoria, le funzioni che usano solo il GameObject Unity.XR.CoreUtils.XROrigin e la sua Camera dovrebbero funzionare normalmente. Se il comportamento è anomalo, è possibile provare a impostare ARSession.ARCenterMode su ARSession.ARCenterMode.SessionOrigin. Se la funzione continua a non essere normale, è necessario implementare un controllo personalizzato dei componenti XR Interaction Toolkit e disabilitare i componenti correlati quando FrameSource non eredita da ARFoundationFrameSource.

Metodo di configurazione

Questa funzione può essere abilitata o disabilitata tramite le opzioni in Unity XR > Unity XR Auto Switch dentro Project Settings > EasyAR > Sense.

alt text

Il comportamento delle opzioni nella figura è il seguente:

  • Editor: opzioni della modalità di modifica
  • Player: opzioni della modalità runtime
    • Enable: abilita il controllo runtime. Nota: quando questa opzione è disattivata, i componenti disabilitati in modalità di modifica non verranno ripristinati a runtime.
    • Enable If Desktop: abilita su Windows/Mac.
    • Enable If Mobile AR On Startup: all'avvio dello switcher, se il loader mobile AR (ARKit/ARCore) è attivo, viene abilitata. 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: all'avvio dello switcher, se esistono altri loader oltre a mobile AR (ARKit/ARCore), ma nessun loader è attivo, viene disabilitata. Di solito questa opzione viene usata quando Initialize XR on Startup in Project Settings > XR Plug-in Management non è selezionato.
    • Restore AR Session When Disabled: quando la funzione è disabilitata, ripristina (abilita) tutti i UnityEngine.XR.ARFoundation.ARSession disabilitati, indipendentemente dal fatto che siano stati disabilitati da EasyAR. Questa opzione viene solitamente usata per ripristinare i componenti disabilitati durante la modifica.

Usare un metodo di controllo personalizzato

Se è necessario personalizzare il passaggio tra questi componenti, o se il comportamento di EasyAR interferisce con il normale funzionamento di alcuni componenti, assicurarsi di disattivare queste opzioni e personalizzare il passaggio dei componenti secondo le seguenti regole di base:

  1. Disabilitare UnityEngine.XR.ARFoundation.ARSession nell'editor (viene eseguito prima di tutti gli altri script)
  2. Prima che AR Foundation inizi a funzionare, disabilitare tutti i componenti Unity XR Core e AR Foundation, oltre ai componenti o alle funzioni correlati da controllare
  3. Se durante il processo easyar.ARSession.Assemble() viene selezionato ARCoreARFoundationFrameSource o ARKitARFoundationFrameSource, abilitare tutti i componenti o le funzioni precedentemente disabilitati prima che StartSession() sia completato; di solito si consiglia di farlo nella risposta all'evento easyar.ARSession.AssembleUpdate
  4. Se durante il processo easyar.ARSession.Assemble() viene selezionato un altro FrameSource, mantenere invariato lo stato

Argomenti correlati