Class ARSession
- Espacio de nombres
- easyar
- Ensayo
- EasyAR.Sense.dll
El MonoBehaviour que controla la sesión AR en la escena. Una sesión contiene un conjunto de componentes ensamblados en un ARAssembly y controla el flujo de datos durante todo su ciclo de vida. Este componente es la entrada a la AR. No se permiten múltiples instancias activas al mismo tiempo.
Todas las funciones de los componentes de EasyAR solo se pueden usar después de StartSession().
La transform relativa entre Camera y algunos componentes AR está controlada por la sesión. Un objeto se denomina CenterObject, permanece inmóvil en la escena, mientras que otros objetos se mueven en relación con este CenterObject. Este objeto se selecciona según el valor de CenterMode. Para una explicación más detallada, consulte la descripción de ARSession.ARCenterMode.
[DefaultExecutionOrder(-2147483648)]
[DisallowMultipleComponent]
[RequireComponent(typeof(EasyARController), typeof(DiagnosticsController))]
[RequireComponent(typeof(FrameRecorder), typeof(FramePlayer), typeof(CameraImageRenderer))]
public class ARSession : MonoBehaviour
- Herencia
-
ARSession
Campos
AutoStart
Inicia la sesión automáticamente en MonoBehaviour.Start. Si se establece en false, debe llamar manualmente a StartSession() para iniciar la sesión.
[SerializeField]
[HideInInspector]
public bool AutoStart
CenterMode
Modo de centro AR. Se puede modificar en cualquier momento, surtiendo efecto inmediato. Si el modo especificado no está disponible, se cambiará automáticamente a un modo disponible.
[SerializeField]
[HideInInspector]
public ARSession.ARCenterMode CenterMode
HorizontalFlip
Modo de renderizado espejo horizontal. Se puede modificar en cualquier momento, surtiendo efecto inmediato. Solo disponible cuando se utiliza seguimiento de imágenes u objetos.
[SerializeField]
[HideInInspector]
public ARSession.FlipOptions HorizontalFlip
Propiedades
AssembleOptions
Opciones de ensamblaje de la sesión, deben establecerse antes de Assemble() (StartSession() lo llamará implícitamente si no se ha llamado antes).
public AssembleOptions AssembleOptions { get; }
Assembly
El ensamblaje de componentes AR.
public ARAssembly Assembly { get; }
AvailableCenterMode
Modos de centro disponibles para la sesión actual.
public IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
CenterObject
El objeto central utilizado por esta sesión en el fotograma actual.
Este objeto representa el objeto que no se mueve en el espacio de Unity o el padre de este objeto. Podría ser Origin, Camera o algún `target`. `Target` puede ser un objeto que contenga un componente TargetController o BlockRootController. Al usar mapas espaciales dispersos o EasyAR Mega, el centro real GameObject es el objeto de mapa o bloque localizado específicamente bajo el nodo raíz, y CenterObject es el padre de este objeto. Para una explicación más detallada, consulte la descripción de ARSession.ARCenterMode.
public GameObject CenterObject { get; }
Diagnostics
Componente de diagnóstico de la sesión.
public DiagnosticsController Diagnostics { get; }
Origin
El origen de la sesión cuando cualquier función de seguimiento de movimiento está en funcionamiento.
Se seleccionará automáticamente de la escena; si no existe, lo creará EasyAR o una extensión de fuente de fotogramas de terceros. Al usar fuentes de fotogramas integradas, si existe XROrigin del marco XR de Unity, se seleccionará. Si el paquete AR Foundation no está presente, solo se seleccionará un XR Origin con la estructura de árbol predeterminada.
public GameObject Origin { get; }
Report
Informe de la sesión. Está disponible para su inspección después de completar el ensamblaje y se actualiza cuando cambia el estado de la sesión. Se utiliza para ver detalles como información sobre daños en la sesión o disponibilidad de componentes.
public SessionReport Report { get; }
SpecificTargetCenter
Objeto central especificado manualmente. Cuando CenterMode == SpecificTarget, CenterObject se establecerá en este objeto. Se puede modificar en cualquier momento, surtiendo efecto inmediato.
Este objeto debe contener un componente TargetController o BlockRootController.
public GameObject SpecificTargetCenter { get; set; }
State
Estado actual de la sesión.
public ARSession.SessionState State { get; }
TrackingStatus
Estado del seguimiento de movimiento cuando cualquier función de seguimiento de movimiento está en funcionamiento.
public Optional<MotionTrackingStatus> TrackingStatus { get; }
enabled
Habilita/deshabilita la salida durante el tiempo de ejecución de la sesión. En estado deshabilitado, la sesión no genera salida, la imagen de la cámara (si la controla EasyAR) y las transform de todos los objetos de la sesión no se actualizan.
public bool enabled { get; set; }
Métodos
Assemble()
Ensambla la sesión usando AssembleOptions. Si se ha llamado, se invocará automáticamente en StartSession().
public IEnumerator Assemble()
ImageCoordinatesFromScreenCoordinates(Vector2)
Transforma desde el sistema de coordenadas de la pantalla ([0, 1]^2) al sistema de coordenadas de la imagen ([0, 1]^2). pointInView debe normalizarse a [0, 1]^2. No disponible en dispositivos de visualización.
public Optional<Vector2> ImageCoordinatesFromScreenCoordinates(Vector2 pointInView)
Parámetros
pointInView
StartSession()
Inicia la sesión. Si AutoStart es true, se llama automáticamente en MonoBehaviour.Start.
public void StartSession()
StopSession(bool)
Detiene la sesión en ejecución. Todas las actualizaciones de transform y renderizado de imágenes se detendrán. Puede optar por mantener la última imagen renderizada al detenerse, pero solo funciona cuando EasyAR controla el renderizado de imágenes (no funciona con AR Foundation o dispositivos de visualización).
public void StopSession(bool keepLastFrame)
Parámetros
keepLastFrame
Eventos
AssembleUpdate
Evento de actualización de Assemble() de la sesión. Este evento se dispara 1-2 veces durante un Assemble() (StartSession() lo llama implícitamente si no se ha llamado antes). La primera vez es cuando se completa el ensamblaje. Si la actualización de la lista de dispositivos ya está completa cuando finaliza el ensamblaje, no habrá una segunda llamada; de lo contrario, la segunda llamada ocurrirá cuando se complete la actualización de la lista de dispositivos.
public event Action<SessionReport.AvailabilityReport> AssembleUpdate
InputFrameUpdate
Evento de actualización del fotograma de entrada, disparado solo cuando cambia el InputFrame presentado por la sesión. No se recibe este evento en dispositivos de visualización, y si existe una imagen de paso a través, su renderizado lo realiza el dispositivo.
public event Action<InputFrame> InputFrameUpdate
PostSessionUpdate
Evento de finalización de actualización de la sesión, con la misma frecuencia que MonoBehaviour.Update (en dispositivos de visualización, requiere que el autor de la extensión lo implemente correctamente). Cuando se activa este evento, todos los cambios de transform controlados por EasyAR en ese fotograma ya se han completado.
public event Action PostSessionUpdate
StateChanged
Evento de cambio de State de la sesión.
public event Action<ARSession.SessionState> StateChanged