Agregar un grupo de fuentes de datos de frame
Una AR Session puede contener varios componentes de fuentes de datos de frame, llamados frame source group. En runtime, la session selecciona del frame source group la fuente de datos de frame más adecuada según el dispositivo actual y las funciones AR habilitadas. Este artículo explica cómo usar y administrar un frame source group.
Antes de comenzar
- Comprenda los conceptos básicos, los tipos y los métodos de selección en runtime de frame source.
Usar el frame source group de una AR Session preset
Las sessions creadas con la configuración predeterminada incluyen un grupo de fuentes de datos de frame, que suele ser suficiente al usar una sola función AR.
Las fuentes de datos de frame incluidas son distintas en diferentes preset sessions.
Una session creada con el preset ARSessionFactory.ARSessionPreset.ImageTracking o mediante el menú
AR Session (Image Tracking Preset)solo tiene una fuente de datos de frame:
La scene hierarchy de una session creada con el preset ARSessionFactory.ARSessionPreset.MegaBlock_MotionTracking_Inertial o mediante el menú
AR Session (Mega Block Default Preset)contiene varios componentes de fuentes de datos de frame:
Si al principio la escena usa una session creada con cierto preset, al agregar otras funciones durante la iteración no solo debe agregar los componentes frame filter correspondientes, sino también agregar componentes de fuente de datos de frame adecuados cuando sea necesario.
Importante
Después de actualizar desde la versión 4.7 o anterior, debe eliminar por completo la session y volver a crearla mediante el menú o ARSessionFactory para usar el frame source group preset.
A continuación se enumeran los componentes de fuente de datos de fotogramas configurados por defecto para todas las funciones AR preestablecidas. Tenga en cuenta que el orden de la lista es el mismo que el orden de los componentes de fuente de datos de fotogramas en la escena:
| Preajuste | Grupo de fuentes de datos de fotogramas |
|---|---|
Nota
El orden de los componentes creados con preset garantiza que se use la fuente de datos de frame óptima en todos los dispositivos soportados por built-in frame source.
Usar la configuración predeterminada de frame source
Al usar los parámetros predeterminados, la configuración de frame source se ajusta automáticamente según el dispositivo y las funciones AR habilitadas en runtime.
Si modificó manualmente los parámetros de frame source, cuando cambien las funciones AR de la session (por ejemplo, al agregar motion tracking a una session que originalmente solo contenía image tracking), quizá necesite ajustar manualmente los parámetros de frame source para adaptarlos a los nuevos requisitos, de modo que todas las funciones AR se ejecuten con el mejor resultado.
Importante
Después de actualizar desde la versión 4.7 o anterior, debe eliminar por completo la session y volver a crearla mediante el menú o ARSessionFactory para usar los parámetros predeterminados correctos.
Agregar un frame source group
En la vista Hierarchy, seleccione AR Session (EasyAR) y haga clic derecho. Use el menú EasyAR Sense > [ AR Feature ] > Frame Source : * para agregar un componente frame source adecuado para esa función. También puede usar el menú EasyAR Sense > Frame Source by Transform Type > * Dof > Frame Source : * para agregar el componente frame source requerido.
En scripts, use ARSessionFactory.AddFrameSource<Source>(GameObject, bool) para agregar componentes frame source.
Por ejemplo, con el menú EasyAR Sense > Frame Source by Transform Type > 3 Dof Rot-Only > Frame Source : Three Dof Camera Device puede agregar un ThreeDofCameraDeviceFrameSource a la session seleccionada.

El código de script correspondiente es:
ARSessionFactory.AddFrameSource<ThreeDofCameraDeviceFrameSource>(session);
Orden de frame source
Durante el assembly de la session, solo una fuente de datos de frame del frame source group será finalmente seleccionada y ensamblada en la session. La regla de selección depende del valor de la propiedad AssembleOptions.FrameSourceSelection. En la configuración predeterminada, puede influir en el frame source finalmente seleccionado ajustando el orden de los componentes del frame source group.
Normalmente puede mover directamente los objetos frame source para ordenarlos con el método de ordenar objetos en la scene en la vista Hierarchy.
En scripts, use Transform.SetSiblingIndex(int) para ajustar el orden de los objetos.
Por ejemplo, para colocar MotionTrackerFrameSource delante de otros frame sources, seleccione el objeto Motion Tracker en la vista Hierarchy y arrástrelo a la posición superior.
El mismo efecto también puede lograrse con el siguiente código de script:
motionTrackerFrameSource.transform.SetSiblingIndex(0);
También hay algunos métodos de ordenación predefined disponibles. En la vista Hierarchy, seleccione AR Session (EasyAR) y haga clic derecho. Use el menú EasyAR Sense > Utility > Sort Frame Source : * > * para ordenar ciertos componentes frame source específicos.
En scripts, use ARSessionFactory.SortFrameSource(GameObject, ARSessionFactory.FrameSourceSortMethod) para lograr el mismo efecto.
Por ejemplo, el menú EasyAR Sense > Utility > Sort Frame Source : Motion Tracker > System SLAM puede colocar MotionTrackerFrameSource delante de ARCoreFrameSource, ARCoreARFoundationFrameSource, ARKitFrameSource, ARKitARFoundationFrameSource y AREngineFrameSource.

El código de script correspondiente es:
ARSessionFactory.SortFrameSource(session, new ARSessionFactory.FrameSourceSortMethod { MotionTracker = ARSessionFactory.FrameSourceSortMethod.MotionTrackerSortMethod.PreferEasyAR });
Después de la ordenación anterior, la scene hierarchy pasa a ser:

Temas relacionados
- Aprenda cómo agregar y configurar frame sources para headsets
- Intente obtener el frame source en uso durante runtime
