Class ARKitFrameSource
- Spazio dei nomi
- easyar
- Assembly
- EasyAR.Sense.dll
Controlla il dispositivo della fotocamera ARKit nella scena (easyar.ARKitCameraDevice), fornendo estensioni funzionali nell'ambiente Unity.
Questa sorgente di frame è un dispositivo di tracciamento del movimento che emette dati di movimento in ARSession.
public class ARKitFrameSource : FrameSource
- Ereditarietà
-
ARKitFrameSource
- Membri ereditati
Campi
DesiredFocusMode
La modalità di messa a fuoco desiderata. Le modifiche sono efficaci solo se effettuate prima dell'evento DeviceOpened o di OnEnable.
Nota: a causa di limitazioni hardware o di sistema, l'interruttore della messa a fuoco potrebbe non funzionare su alcuni dispositivi.
public ARKitCameraDeviceFocusMode DesiredFocusMode
Proprietà
Camera
Fornito solo quando si crea una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Su dispositivi desktop o mobili, questa fotocamera rappresenta la controparte virtuale Camera del dispositivo fotocamera reale nell'ambiente fisico. La sua matrice di proiezione e la 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 se non si utilizza Unity XR Origin. Se non impostato, verrà utilizzato Camera.main.
public Camera CameraCandidate { get; set; }
CameraFrameStarted
Fornito solo quando si crea una nuova sorgente di frame. Accessibile durante l'intero ciclo di vita di ARSession.
Indica se l'input del frame della fotocamera è iniziato.
protected override bool CameraFrameStarted { get; }
DesiredFrameRate
Frame rate desiderato per l'immagine della fotocamera. Le modifiche sono efficaci solo se effettuate prima dell'evento DeviceOpened.
Utilizzerà il valore più vicino tra quelli in SupportedFrameRate. Se non impostato, verrà utilizzato il valore predefinito.
public Optional<double> DesiredFrameRate { get; set; }
DesiredSize
Dimensione desiderata dell'immagine della fotocamera. Le modifiche sono efficaci solo se effettuate prima dell'evento DeviceOpened.
Utilizzerà la dimensione più vicina tra i valori in SupportedSize. Se non impostato, verrà utilizzato il valore predefinito.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Fornito solo quando si crea 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 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. 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; }
FrameRate
Frame rate corrente del dispositivo. Disponibile solo quando Opened è true.
La set utilizzerà il valore più vicino tra quelli in SupportedFrameRate.
public double FrameRate { get; set; }
IsAvailable
Fornito solo quando si crea una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Indica se la sorgente di frame corrente è 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. Accessibile solo durante il processo Assemble().
Quando è true, la sessione aggiornerà la trasform della fotocamera e renderizzerà l'immagine della fotocamera.
Quando si crea un'estensione per HMD, dovrebbe essere false. Dovresti avere il controllo completo della fotocamera 3D nella scena. Dovresti gestire il rendering della fotocamera, specialmente in modalità VST (Video See-Through).
protected override bool IsCameraUnderControl { get; }
IsHMD
Fornito solo quando si crea una nuova sorgente di frame. Accessibile solo durante il processo Assemble().
Indica se la sorgente di frame corrente è un dispositivo HMD (head-mounted). Se è un HMD, le informazioni diagnostiche verranno visualizzate su un pannello 3D davanti alla fotocamera.
Alcuni frame filter possono comportarsi diversamente sui dispositivi HMD.
protected override bool IsHMD { get; }
Opened
Indica 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; }
SupportedFrameRate
Tutti i frame rate supportati dal dispositivo corrente. Disponibile solo quando Opened è true.
public List<double> SupportedFrameRate { get; }
SupportedSize
Tutte le dimensioni delle immagini 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. Accessibile solo durante il processo StartSession().
Gestisce l'avvio della sessione, se questa sorgente di frame è stata assemblata in Assembly. Questo metodo è concepito per l'inizializzazione differita; qui puoi eseguire lavori di inizializzazione specifici per AR.
protected override void OnSessionStart(ARSession session)
Parametri
session
OnSessionStop()
Fornito solo quando si crea 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 verrà chiamato con certezza 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 non si chiamano manualmente Open() e Close(), ARSession aprirà automaticamente il dispositivo all'avvio.
public void Open()
Eventi
DeviceClosed
Evento di chiusura del dispositivo.
public event Action DeviceClosed
DeviceOpened
Evento di apertura del dispositivo. Il valore booleano indica l'esito positivo o negativo.
public event Action<bool, PermissionStatus, string> DeviceOpened