Table of Contents

Class InertialCameraDeviceFrameSource

Spazio dei nomi
easyar
Assembly
EasyAR.Sense.dll

Controlla nella scena il easyar.InertialCameraDevice MonoBehaviour, fornendo estensioni funzionali nell'ambiente Unity.

Questa sorgente di frame è un dispositivo di tracciamento a 5DOF (rotazione + spostamento orizzontale) che emette dati di movimento nell'ARSession.

public class InertialCameraDeviceFrameSource : FrameSource
Ereditarietà
InertialCameraDeviceFrameSource
Membri ereditati

Campi

DesiredFocusMode

La modalità di messa a fuoco desiderata. Le modifiche avranno effetto solo se effettuate prima dell'evento DeviceOpened o di OnEnable.

Nota: A causa di limitazioni hardware o di sistema, l'attivazione/disattivazione della messa a fuoco potrebbe non funzionare su alcuni dispositivi.

public InertialCameraDeviceFocusMode DesiredFocusMode

Proprietà

Camera

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile solo durante il processo Assemble().

Su dispositivi desktop o telefoni, questa fotocamera rappresenta il Camera corrispondente nel mondo virtuale al dispositivo fotocamera nel mondo reale. La sua matrice di proiezione e posizione corrisponderanno alla fotocamera reale e saranno controllate da EasyAR. Sui visori, questa fotocamera viene utilizzata solo per visualizzare del testo diagnostico davanti agli occhi, non per il rendering della scena, e non è controllata da EasyAR.

protected override Camera Camera { get; }

CameraCandidate

Alternativa a Camera, valida solo quando non si utilizza Unity XR Origin. Se non impostata, verrà utilizzato Camera.main.

public Camera CameraCandidate { get; set; }

CameraFrameStarted

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile durante l'intero ciclo di vita dell'ARSession.

Se l'input del frame della fotocamera è iniziato.

protected override bool CameraFrameStarted { get; }

DesiredSize

Dimensione desiderata dell'immagine della fotocamera. Le modifiche avranno effetto solo se effettuate prima dell'evento DeviceOpened.

Utilizzerà la dimensione più vicina tra i valori in SupportedSize. Se non impostata, verrà utilizzato il valore predefinito.

public Optional<Vector2Int> DesiredSize { get; set; }

DeviceCameras

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile solo quando CameraFrameStarted è true.

La fotocamera del dispositivo che fornisce i dati del frame. Se i dati del frame provengono da più fotocamere, l'elenco deve includerle tutte.

Assicurarsi che il valore sia corretto quando CameraFrameStarted è true.

protected override List<FrameSourceCamera> DeviceCameras { get; }

Display

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile solo durante il processo Assemble().

Fornisce le informazioni sul sistema di visualizzazione. Puoi utilizzare DefaultSystemDisplay o DefaultHMDDisplay per ottenere le informazioni di visualizzazione predefinite.

protected override IDisplay Display { get; }

FrameRateRange

Intervallo della frequenza dei frame. Disponibile solo quando Opened è true.

public Vector2 FrameRateRange { get; }

IsAvailable

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile solo durante il processo Assemble().

Se questa sorgente di frame è disponibile.

Se il valore è null, verrà chiamato CheckAvailability() e il valore verrà ottenuto dopo la fine della Coroutine.

protected override Optional<bool> IsAvailable { get; }

IsCameraUnderControl

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile solo durante il processo Assemble().

Quando è true, la sessione aggiornerà il transform della fotocamera e renderizzerà l'immagine della fotocamera.

Quando si crea un'estensione per visori, dovrebbe essere false. Dovresti avere il controllo completo della fotocamera 3D nella scena. Dovresti gestire il rendering della fotocamera, specialmente in modalità VST.

protected override bool IsCameraUnderControl { get; }

IsHMD

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile solo durante il processo Assemble().

Se questa sorgente di frame è un visore (head-mounted). Se è un visore, le informazioni diagnostiche verranno visualizzate su un pannello 3D davanti alla fotocamera.

Alcuni frame filter funzionano diversamente sui dispositivi.

protected override bool IsHMD { get; }

Opened

Se la fotocamera è aperta.

public bool Opened { get; }

Size

Dimensione corrente dell'immagine. Disponibile solo quando Opened è true.

La set utilizzerà la dimensione più vicina tra i valori in SupportedSize.

Se la dimensione dell'immagine viene modificata durante la registrazione di FrameRecorder, i dati di registrazione smetteranno di aggiornarsi; è necessario chiudere e riavviare la registrazione.

public Vector2Int Size { get; set; }

SupportedSize

Tutte le dimensioni dell'immagine supportate dal dispositivo corrente. Disponibile solo quando Opened è true.

public List<Vector2Int> SupportedSize { get; }

Metodi

Close()

Chiude il dispositivo.

public void Close()

OnSessionStart(ARSession)

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile solo durante il processo StartSession().

Gestisce l'avvio della sessione, se questa sorgente di frame è stata assemblata nell'Assembly. Questo metodo è concepito per l'inizializzazione ritardata; puoi eseguire qui il lavoro di inizializzazione specifico per la AR.

protected override void OnSessionStart(ARSession session)

Parametri

session

OnSessionStop()

Fornito solo quando si crea una nuova sorgente di frame. Verrà accessibile durante StopSession(bool) o altri processi di arresto/danneggiamento della sessione.

Gestisce l'arresto della sessione, se questa sorgente di frame è stata assemblata nell'Assembly. Puoi utilizzare questo metodo per distruggere le risorse create durante StartSession() e il funzionamento della sessione e ripristinare lo stato interno. Questo metodo sarà chiamato prima della distruzione della sessione. Se la sorgente di frame viene distrutta prima della sessione, questo metodo non verrà chiamato e la sessione risulterà danneggiata.

protected override void OnSessionStop()

Open()

Apre il dispositivo. Se Open() e Close() non vengono chiamati manualmente, l'ARSession aprirà automaticamente all'avvio.

public void Open()

ResetInertial()

Reimposta lo stato.

public void ResetInertial()

Eventi

DeviceClosed

Evento di chiusura del dispositivo.

public event Action DeviceClosed

DeviceOpened

Evento di apertura del dispositivo. Il valore bool indica se ha avuto successo.

public event Action<bool, PermissionStatus, string> DeviceOpened