Table of Contents

Class ARSession

Spazio dei nomi
easyar
Assembly
EasyAR.Sense.dll

Il componente MonoBehaviour che controlla la sessione AR nella scena. Una sessione contiene un insieme di componenti assemblati in un ARAssembly e controlla il flusso di dati per l'intero ciclo di vita. Questo componente è il punto di ingresso per l'AR. Non sono consentite più istanze attive contemporaneamente.

Tutte le funzionalità dei componenti EasyAR possono essere utilizzate solo dopo StartSession().

Le trasform relative tra Camera e alcuni componenti AR sono controllate dalla sessione. Uno di questi oggetti è chiamato CenterObject, rimane fermo nella scena, mentre gli altri si muovono rispetto ad esso. Questo oggetto viene selezionato in base al valore di CenterMode. Per una spiegazione più dettagliata, consulta la descrizione di ARSession.ARCenterMode.

[DefaultExecutionOrder(-2147483648)]
[DisallowMultipleComponent]
[RequireComponent(typeof(EasyARController), typeof(DiagnosticsController))]
[RequireComponent(typeof(FrameRecorder), typeof(FramePlayer), typeof(CameraImageRenderer))]
public class ARSession : MonoBehaviour
Ereditarietà
ARSession

Campi

AutoStart

Avvia automaticamente la sessione in MonoBehaviour.Start. Se impostato su false, devi chiamare manualmente StartSession() per avviare la sessione.

[SerializeField]
[HideInInspector]
public bool AutoStart

CenterMode

Modalità del centro AR. Modificabile in qualsiasi momento, effetto immediato. Se la modalità specificata non è disponibile, verrà automaticamente modificata in una modalità disponibile.

[SerializeField]
[HideInInspector]
public ARSession.ARCenterMode CenterMode

HorizontalFlip

Modalità di rendering mirroring orizzontale. Modificabile in qualsiasi momento, effetto immediato. Disponibile solo quando si utilizza il tracciamento di immagini o oggetti.

[SerializeField]
[HideInInspector]
public ARSession.FlipOptions HorizontalFlip

Proprietà

AssembleOptions

Opzioni di assemblaggio della sessione, da impostare prima di Assemble() (chiamato implicitamente da StartSession() se non chiamato prima).

public AssembleOptions AssembleOptions { get; }

Assembly

L'assemblaggio dei componenti AR.

public ARAssembly Assembly { get; }

AvailableCenterMode

Modalità centrale disponibili per la sessione corrente.

public IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }

CenterObject

L'oggetto centrale utilizzato da questa sessione nel frame corrente.

Questo oggetto rappresenta l'oggetto o il suo genitore che non si muove nello spazio Unity. Potrebbe essere Origin, Camera o un `target`. Un `Target` può essere un oggetto contenente un componente TargetController o BlockRootController. Quando si utilizzano mappe spaziali sparse e EasyAR Mega, il centro effettivo GameObject è l'oggetto mappa o blocco localizzato sotto il nodo root; CenterObject è il genitore di questo oggetto. Per una spiegazione più dettagliata, consulta la descrizione di ARSession.ARCenterMode.

public GameObject CenterObject { get; }

Diagnostics

Componente di diagnostica della sessione.

public DiagnosticsController Diagnostics { get; }

Origin

L'origine della sessione quando è in esecuzione qualsiasi funzionalità di tracciamento del movimento.

Sarà selezionata automaticamente dalla scena o creata da EasyAR o da un'estensione di frame source di terze parti se non esiste. Quando si utilizzano frame source integrati, se esiste un XROrigin del framework Unity XR, verrà selezionato. Se il pacchetto AR Foundation non è presente, verrà selezionato solo un XR Origin con la struttura ad albero predefinita.

public GameObject Origin { get; }

Report

Report della sessione. Disponibile per la visualizzazione dopo il completamento dell'assemblaggio e viene aggiornato quando cambia lo stato della sessione. Utilizzato per vedere dettagli come informazioni sul danneggiamento della sessione o disponibilità dei componenti.

public SessionReport Report { get; }

SpecificTargetCenter

Oggetto centrale specificato manualmente. Quando CenterMode == SpecificTarget, CenterObject sarà impostato su questo oggetto. Modificabile in qualsiasi momento, effetto immediato.

L'oggetto deve contenere un componente TargetController o BlockRootController.

public GameObject SpecificTargetCenter { get; set; }

State

Stato della sessione corrente.

public ARSession.SessionState State { get; }

TrackingStatus

Stato del tracciamento del movimento quando è in esecuzione qualsiasi funzionalità di tracciamento del movimento.

public Optional<MotionTrackingStatus> TrackingStatus { get; }

Metodi

Assemble()

Assembla la sessione utilizzando AssembleOptions. Se chiamato, viene chiamato automaticamente in StartSession().

public IEnumerator Assemble()

ImageCoordinatesFromScreenCoordinates(Vector2)

Trasforma dal sistema di coordinate dello schermo ([0, 1]^2) al sistema di coordinate dell'immagine ([0, 1]^2). pointInView deve essere normalizzato in [0, 1]^2. Non disponibile sui dispositivi head-mounted.

public Optional<Vector2> ImageCoordinatesFromScreenCoordinates(Vector2 pointInView)

Parametri

pointInView

StartSession()

Avvia la sessione. Se AutoStart è true, viene chiamato automaticamente in MonoBehaviour.Start.

public void StartSession()

StopSession(bool)

Interrompe la sessione avviata. Tutti gli aggiornamenti delle trasform e del rendering delle immagini si fermeranno. Puoi mantenere l'ultima immagine quando viene interrotta, ma funziona solo quando EasyAR controlla il rendering delle immagini (non valido per AR Foundation e dispositivi head-mounted).

public void StopSession(bool keepLastFrame)

Parametri

keepLastFrame

Eventi

AssembleUpdate

Evento di aggiornamento Assemble() della sessione. Durante un Assemble() (chiamato implicitamente da StartSession() se non chiamato prima), questo evento viene attivato 1-2 volte. La prima quando l'Assemble è completato. Se l'aggiornamento dell'elenco dei dispositivi è completato quando l'Assemble finisce, non ci sarà una seconda chiamata; altrimenti, la seconda chiamata avverrà al completamento dell'aggiornamento dell'elenco dei dispositivi.

public event Action<SessionReport.AvailabilityReport> AssembleUpdate

InputFrameUpdate

Evento di aggiornamento del frame di input, attivato solo quando l'InputFrame visualizzato dalla sessione cambia. Non ricevuto sui dispositivi head-mounted e, se è presente un'immagine di see-through, il suo rendering è gestito dal dispositivo.

public event Action<InputFrame> InputFrameUpdate

PostSessionUpdate

Evento di completamento dell'aggiornamento della sessione, con frequenza uguale a MonoBehaviour.Update (sui dispositivi head-mounted richiede che l'estensione sia implementata correttamente). Quando viene attivato, tutte le trasformazioni controllate da EasyAR per quel frame sono state completate.

public event Action PostSessionUpdate

StateChanged

Evento per il cambiamento dello State della sessione.

public event Action<ARSession.SessionState> StateChanged