Table of Contents

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