Class ARSession
- Spazio dei nomi
- easyar
- Assembly
- EasyAR.Sense.dll
Il componente che controlla la sessione AR nella scena. Una sessione contiene un set 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 la AR. Non sono consentite più istanze attive contemporaneamente.
Tutte le funzionalità dei componenti EasyAR possono essere utilizzate solo dopo StartSession().
La trasform relativa tra Camera e alcuni componenti AR è controllata dalla sessione. Uno di questi oggetti è chiamato CenterObject, che 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à centro AR. Può essere modificata in qualsiasi momento con 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. Può essere modificata in qualsiasi momento con 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() (se non chiamato prima, StartSession() lo chiamerà implicitamente).
public AssembleOptions AssembleOptions { get; }
Assembly
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 un 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 utilizza la mappa spaziale sparsa o EasyAR Mega, il centro effettivo GameObject è l'oggetto mappa o blocco localizzato sotto il nodo root, e 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.
Viene selezionata automaticamente dalla scena; se non esiste, viene creata da EasyAR o da un'estensione di terze parti frame source. Quando si utilizza una frame source integrata, 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 consultazione dopo il completamento dell'assemblaggio e viene aggiornato quando cambia lo stato della sessione. Serve per visualizzare dettagli come il danno alla sessione o la disponibilità dei componenti.
public SessionReport Report { get; }
SpecificTargetCenter
Oggetto centrale specificato manualmente. Quando CenterMode == SpecificTarget, CenterObject verrà impostato su questo oggetto. Può essere modificato in qualsiasi momento con effetto immediato.
Questo oggetto deve contenere un componente TargetController o BlockRootController.
public GameObject SpecificTargetCenter { get; set; }
State
Stato corrente della sessione.
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; }
enabled
Abilita/disabilita l'output durante l'esecuzione della sessione. Nello stato disabilitato, la sessione non produce output, l'immagine della fotocamera (se controllata da EasyAR) e le trasformazioni di tutti gli oggetti della sessione non vengono aggiornate.
public bool enabled { get; set; }
Metodi
Assemble()
Assembla la sessione utilizzando AssembleOptions. Se chiamato, viene chiamato automaticamente in StartSession().
public IEnumerator Assemble()
ImageCoordinatesFromScreenCoordinates(Vector2)
Trasforma da coordinate schermo ([0, 1]^2) a coordinate immagine ([0, 1]^2). pointInView deve essere normalizzato in [0, 1]^2. Non disponibile sui visori.
public Optional<Vector2> ImageCoordinatesFromScreenCoordinates(Vector2 pointInView)
Parametri
pointInView
StartSession()
Avvia la sessione. Se AutoStart è true, viene chiamata automaticamente in MonoBehaviour.Start.
public void StartSession()
StopSession(bool)
Interrompe la sessione avviata. Tutti gli aggiornamenti delle trasformazioni 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 visori).
public void StopSession(bool keepLastFrame)
Parametri
keepLastFrame
Eventi
AssembleUpdate
Evento di aggiornamento Assemble() della sessione. Questo evento viene attivato 1-2 volte durante un Assemble() (se non chiamato prima, StartSession() lo chiamerà implicitamente). La prima volta quando l'Assemblaggio è completato. Se l'aggiornamento dell'elenco dei dispositivi è completato al momento del completamento dell'Assemblaggio, 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 cambia il InputFrame visualizzato dalla sessione. Questo evento non viene ricevuto sui visori e, se è presente un'immagine di pass-through, il suo rendering viene eseguito dal dispositivo.
public event Action<InputFrame> InputFrameUpdate
PostSessionUpdate
Evento di completamento dell'aggiornamento della sessione, con la stessa frequenza di MonoBehaviour.Update (sui visori richiede che l'autore dell'estensione implementi correttamente). Quando questo evento viene attivato, tutte le trasformazioni controllate da EasyAR all'interno di questo frame sono state completate.
public event Action PostSessionUpdate
StateChanged
Evento del cambiamento dello stato State della sessione.
public event Action<ARSession.SessionState> StateChanged