Class MotionTrackerFrameSource
- Spazio dei nomi
- easyar
- Assembly
- EasyAR.Sense.dll
Controlla easyar.MotionTrackerCameraDevice nella scena, fornendo estensioni funzionali in ambiente Unity.
Questa sorgente di frame è un dispositivo di tracciamento del movimento che emette dati di movimento in ARSession.
public class MotionTrackerFrameSource : FrameSource
- Ereditarietà
-
MotionTrackerFrameSource
- Membri ereditati
Proprietà
Camera
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Su dispositivi desktop o mobili, 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. Su un HMD, questa fotocamera viene utilizzata solo per visualizzare 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 impostato, verrà utilizzato Camera.main.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile per l'intero ciclo di vita di ARSession.
Se il frame della fotocamera ha iniziato l'input.
protected override bool CameraFrameStarted { get; }
DesiredFocusMode
Modalità di messa a fuoco desiderata. Le modifiche sono efficaci solo prima dell'evento DeviceOpened o di OnEnable.
Nota: a causa di limitazioni hardware o di sistema, l'attivazione/disattivazione della messa a fuoco potrebbe essere inefficace su alcuni dispositivi.
public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredFrameRate
Frame rate del dispositivo desiderato. Le modifiche sono efficaci solo prima dell'evento DeviceOpened o di OnEnable.
public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }
DesiredMinQualityLevel
Livello di qualità minimo consentito desiderato. Le modifiche sono efficaci solo prima di Assemble().
public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }
DesiredResolution
Risoluzione desiderata. Le modifiche sono efficaci solo prima dell'evento DeviceOpened o di OnEnable.
Se la dimensione dell'immagine viene modificata durante la registrazione di FrameRecorder, i dati di registrazione smetteranno di aggiornarsi. È necessario chiuderla e riavviare la registrazione.
public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }
DesiredTrackingMode
Modalità di tracciamento desiderata. Le modifiche sono efficaci solo prima dell'avvio della sessione.
public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { get; set; }
DeviceCameras
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile solo quando CameraFrameStarted è true.
Fornisce la fotocamera del dispositivo che fornisce i dati del frame della fotocamera. Se i dati provengono da più fotocamere, l'elenco deve includerle tutte.
Assicurarsi che il valore sia corretto quando CameraFrameStarted è true.
protected override List<FrameSourceCamera> DeviceCameras { get; }
DeviceQualityLevel
Ottiene la qualità del Motion Tracking sul dispositivo. Combinato con lo scenario applicativo, questo valore può determinare se avviare il Motion Tracking.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { get; }
Display
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Fornisce informazioni sul sistema di visualizzazione. Puoi utilizzare DefaultSystemDisplay o DefaultHMDDisplay per ottenere le informazioni di visualizzazione predefinite.
protected override IDisplay Display { get; }
FrameRateRange
Intervallo di frame rate. Disponibile solo quando Opened è true.
public Vector2 FrameRateRange { get; }
IsAvailable
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Se questa sorgente di frame è disponibile.
Se il valore è null, verrà chiamato CheckAvailability() e il valore verrà ottenuto al termine della Coroutine.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Quando è true, la sessione aggiorna il transform della fotocamera e ne renderizza l'immagine.
Nella creazione di un'estensione per HMD, dovrebbe essere false. Dovresti avere il controllo completo della fotocamera 3D nella scena e gestirne il rendering, specialmente in modalità VST (Video See-Through).
protected override bool IsCameraUnderControl { get; }
IsHMD
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Se questa sorgente di frame è un head-mounted display (HMD). Se sì, le informazioni diagnostiche verranno visualizzate su un pannello 3D davanti alla fotocamera.
Alcuni frame filter funzioneranno diversamente sul dispositivo.
protected override bool IsHMD { get; }
LocalPointCloud
Informazioni sulla posizione corrente dei dati della nuvola di punti. Disponibile solo quando Opened è true.
public List<Vector3> LocalPointCloud { get; }
Opened
Se la fotocamera è aperta.
public bool Opened { get; }
Size
Dimensione corrente dell'immagine. Disponibile solo quando sia Opened che MonoBehaviour.enabled sono true.
public Vector2Int Size { get; }
Metodi
Close()
Chiudi il dispositivo.
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
Esegue un Hit Test sui piani orizzontali rilevati in tempo reale nel campo visivo corrente. Al tocco di un piano orizzontale, restituisce le coordinate della posizione 3D del punto più vicino al raggio dell'Hit Test su quel piano. pointInView deve essere normalizzato in [0, 1]^2.
public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)
Parametri
pointInView
HitTestAgainstPointCloud(Vector2)
Esegue un Hit Test nella nuvola di punti corrente, ottenendo le coordinate della posizione 3D del punto più vicino su un raggio dalla fotocamera da vicino a lontano. pointInView deve essere normalizzato in [0, 1]^2.
public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)
Parametri
pointInView
OnSessionStart(ARSession)
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile solo durante il processo StartSession().
Gestisce l'avvio della sessione, se questa sorgente di frame è stata assemblata in Assembly. Questo metodo è progettato per l'inizializzazione ritardata. Qui puoi eseguire lavori di inizializzazione specifici per AR.
protected override void OnSessionStart(ARSession session)
Parametri
session
OnSessionStop()
Fornito solo alla creazione di una nuova sorgente di frame. Accessibile durante StopSession(bool) o altri processi di arresto/danneggiamento della sessione.
Gestisce l'arresto della sessione, se questa sorgente di frame è stata assemblata in Assembly. Puoi utilizzare questo metodo per distruggere le risorse create in StartSession() e durante l'esecuzione della sessione, e ripristinare lo stato interno. Questo metodo viene chiamato in modo garantito 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()
Apri il dispositivo. Se non si chiamano manualmente Open() e Close(), ARSession aprirà automaticamente all'avvio.
public void Open()
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