Aggiungere un gruppo di sorgenti dati frame
Una AR Session può contenere più componenti sorgente dati frame, chiamati frame source group. Durante il runtime, la session seleziona dal frame source group la sorgente dati frame più adatta in base al dispositivo corrente e alle funzioni AR abilitate. Questo articolo spiega come usare e gestire un frame source group.
Prima di iniziare
- Comprendere i concetti di base, i tipi e i metodi di selezione runtime di frame source.
Usare il frame source group di una AR Session preset
Le session create con la configurazione predefinita includono già un gruppo di sorgenti dati frame, generalmente sufficiente quando si usa una singola funzione AR.
Le sorgenti dati frame incluse nei diversi preset session sono diverse.
Una session creata con il preset ARSessionFactory.ARSessionPreset.ImageTracking o dal menu
AR Session (Image Tracking Preset)contiene una sola sorgente dati frame:
La scene hierarchy di una session creata con il preset ARSessionFactory.ARSessionPreset.MegaBlock_MotionTracking_Inertial o dal menu
AR Session (Mega Block Default Preset)contiene più componenti sorgente dati frame:
Se nella scena inizialmente è stata creata una session con un certo preset, quando durante l'iterazione si aggiungono altre funzioni non occorre solo aggiungere i componenti frame filter corrispondenti, ma anche aggiungere, se necessario, componenti sorgente dati frame appropriati.
Importante
Dopo l'upgrade dalla versione 4.7 o precedente, è necessario eliminare completamente la session e ricrearla tramite menu o ARSessionFactory per usare il frame source group preset.
Di seguito sono elencati i componenti sorgente dati frame configurati per impostazione predefinita per tutte le funzioni AR preimpostate. Notare che l'ordine nell'elenco è lo stesso dell'ordine dei componenti sorgente dati frame nella scena:
| Preset | Gruppo sorgente dati frame |
|---|---|
Nota
L'ordine dei componenti creati dal preset garantisce che venga usata la sorgente dati frame ottimale su tutti i dispositivi supportati dai built-in frame source.
Usare la configurazione predefinita di frame source
Quando si usano i parametri predefiniti, la configurazione di frame source viene regolata automaticamente in base al dispositivo e alle funzioni AR abilitate in runtime.
Se sono stati modificati manualmente i parametri di frame source, quando le funzioni AR nella session cambiano (ad esempio quando si aggiunge motion tracking a una session che originariamente conteneva solo image tracking), potrebbe essere necessario regolare manualmente i parametri di frame source per adattarli ai nuovi requisiti, così che tutte le funzioni AR possano funzionare con il risultato migliore.
Importante
Dopo l'upgrade dalla versione 4.7 o precedente, è necessario eliminare completamente la session e ricrearla tramite menu o ARSessionFactory per usare i parametri predefiniti corretti.
Aggiungere un frame source group
Nella vista Hierarchy, selezionare AR Session (EasyAR) e fare clic con il tasto destro. Dal menu EasyAR Sense > [ AR Feature ] > Frame Source : * è possibile aggiungere un componente frame source adatto a quella funzione. È anche possibile usare il menu EasyAR Sense > Frame Source by Transform Type > * Dof > Frame Source : * per aggiungere il componente frame source richiesto.
Negli script, usare ARSessionFactory.AddFrameSource<Source>(GameObject, bool) per aggiungere componenti frame source.
Ad esempio, con il menu EasyAR Sense > Frame Source by Transform Type > 3 Dof Rot-Only > Frame Source : Three Dof Camera Device si può aggiungere un ThreeDofCameraDeviceFrameSource alla session selezionata.

Il codice script corrispondente è:
ARSessionFactory.AddFrameSource<ThreeDofCameraDeviceFrameSource>(session);
Ordinamento di frame source
Durante l'assembly della session, solo una sorgente dati frame nel frame source group viene infine selezionata e assemblata nella session. La regola di selezione dipende dal valore della proprietà AssembleOptions.FrameSourceSelection. Nella configurazione predefinita, è possibile influenzare il frame source selezionato regolando l'ordine dei componenti nel frame source group.
In genere è possibile spostare direttamente gli oggetti frame source per ordinarli usando il metodo di ordinamento degli oggetti nella scene nella vista Hierarchy.
Negli script, usare Transform.SetSiblingIndex(int) per regolare l'ordine degli oggetti.
Ad esempio, per posizionare MotionTrackerFrameSource prima degli altri frame source, selezionare l'oggetto Motion Tracker nella vista Hierarchy e trascinarlo nella posizione più alta.
Lo stesso effetto può essere ottenuto anche con il seguente codice script:
motionTrackerFrameSource.transform.SetSiblingIndex(0);
Sono inoltre disponibili alcuni metodi di ordinamento predefined. Nella vista Hierarchy, selezionare AR Session (EasyAR) e fare clic con il tasto destro. Dal menu EasyAR Sense > Utility > Sort Frame Source : * > * è possibile ordinare specifici componenti frame source.
Negli script, usare ARSessionFactory.SortFrameSource(GameObject, ARSessionFactory.FrameSourceSortMethod) per ottenere lo stesso effetto.
Ad esempio, il menu EasyAR Sense > Utility > Sort Frame Source : Motion Tracker > System SLAM può posizionare MotionTrackerFrameSource prima di ARCoreFrameSource, ARCoreARFoundationFrameSource, ARKitFrameSource, ARKitARFoundationFrameSource e AREngineFrameSource.

Il codice script corrispondente è:
ARSessionFactory.SortFrameSource(session, new ARSessionFactory.FrameSourceSortMethod { MotionTracker = ARSessionFactory.FrameSourceSortMethod.MotionTrackerSortMethod.PreferEasyAR });
Dopo l'ordinamento precedente, la scene hierarchy diventa:

Argomenti correlati
- Scoprire come aggiungere e configurare frame source per headset
- Provare a ottenere il frame source in uso durante runtime
