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 simultáneamente.
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. Uno de estos objetos 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 automáticamente la sesión en MonoBehaviour.Start. Si se establece en falso, 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 y surte 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 de espejo horizontal. Se puede modificar en cualquier momento y surte 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() (si no se llamó antes, StartSession() lo llama implícitamente).
public AssembleOptions AssembleOptions { get; }
Assembly
Ensamblaje de componentes AR.
public ARAssembly Assembly { get; }
AvailableCenterMode
Modos centrales 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 un objeto o su nodo padre que no se mueve en el espacio Unity. 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 map o block ubicado específicamente bajo el nodo raíz; CenterObject es el nodo 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
Origen de la sesión cuando cualquier función de seguimiento de movimiento está activa.
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 su estructura de árbol predeterminada intacta.
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 y surte 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á activa.
public Optional<MotionTrackingStatus> TrackingStatus { get; }
Métodos
Assemble()
Ensambla la sesión usando AssembleOptions. Si se llama, se invoca automáticamente en StartSession().
public IEnumerator Assemble()
ImageCoordinatesFromScreenCoordinates(Vector2)
Transforma desde el sistema de coordenadas de pantalla ([0, 1]^2) al sistema de coordenadas de imagen ([0, 1]^2). pointInView debe normalizarse a [0, 1]^2. No disponible en visores.
public Optional<Vector2> ImageCoordinatesFromScreenCoordinates(Vector2 pointInView)
Parámetros
pointInView
StartSession()
Inicia la sesión. Si AutoStart es verdadero, 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 conservar la última imagen renderizada al detenerse, pero solo es efectivo cuando EasyAR controla el renderizado de imágenes (no válido para AR Foundation, visores, etc.).
public void StopSession(bool keepLastFrame)
Parámetros
keepLastFrame
Eventos
AssembleUpdate
Evento de actualización de Assemble() de la sesión. Este evento se activa 1-2 veces durante un Assemble() (si no se llamó antes, StartSession() lo llama implícitamente). La primera vez es cuando se completa el Ensamblaje. Si la actualización de la lista de dispositivos ya se completó 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, activado solo cuando cambia el InputFrame mostrado por la sesión. No se recibe este evento en visores, y si existe una imagen de paso, su renderizado lo realiza el dispositivo.
public event Action<InputFrame> InputFrameUpdate
PostSessionUpdate
Evento de finalización de la actualización de la sesión, con la misma frecuencia que MonoBehaviour.Update (requiere que los autores de extensiones para visores lo implementen correctamente). Cuando se activa este evento, todos los cambios de transform controlados por EasyAR en este 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