Class CameraDeviceFrameSource
- Espace de noms
- easyar
- Assembly
- EasyAR.Sense.dll
Un MonoBehaviour contrôlant un easyar.CameraDevice dans la scène, fournissant des extensions de fonctionnalité dans l'environnement Unity.
Cette source d'images n'est pas un dispositif de suivi de mouvement et ne fournira pas de données de mouvement dans une ARSession.
[RequireComponent(typeof(CameraDeviceDisplay))]
public class CameraDeviceFrameSource : FrameSource
- Héritage
-
CameraDeviceFrameSource
- Dérivé
- Membres hérités
Champs
CameraOpenIndex
Index du périphérique utilisé lors de l'ouverture de la caméra, utilisé lorsque CameraOpenMethod == DeviceIndex. La modification est efficace seulement si elle est effectuée avant l'événement DeviceOpened.
[HideInInspector]
[SerializeField]
public int CameraOpenIndex
CameraOpenMethod
Méthode utilisée lors de l'ouverture de l'appareil photo. Les modifications doivent être effectuées avant l'événement DeviceOpened pour être efficaces.
[HideInInspector]
[SerializeField]
public CameraDeviceFrameSource.CameraDeviceOpenMethod CameraOpenMethod
CameraOpenType
Type de caméra utilisé lors de l'ouverture de l'appareil photo. Utilisé lorsque CameraOpenMethod == PreferredType ou SpecificType. Les modifications sont effectives uniquement si elles sont apportées avant l'événement DeviceOpened.
[HideInInspector]
[SerializeField]
public CameraDeviceType CameraOpenType
Propriétés
AndroidCameraApiType
Sur Android, cela peut être utilisé pour obtenir l'API Camera utilisée (camera1 ou camera2).. Disponible uniquement lorsque Opened est true.
public AndroidCameraApiType AndroidCameraApiType { get; }
AvailableCenterMode
Uniquement fourni lors de la création d'une nouvelle source d'images. Il ne sera accessible que pendant le processus Assemble().
Tous les modes de centrage disponibles.
protected override IReadOnlyList<ARSession.ARCenterMode> AvailableCenterMode { get; }
Camera
Fourni uniquement lors de la création d'une nouvelle frame source. Il ne sera accessible que pendant le processus de Assemble().
Sur ordinateur de bureau ou téléphone mobile, cette caméra représente le u:aUnityEngine.Camera correspondant dans le monde virtuel à l'appareil photo physique dans l'environnement réel. Sa matrice de projection et sa position correspondront à celles de la caméra réelle, contrôlée par EasyAR. Sur un casque de réalité virtuelle (HMD), cette caméra sert uniquement à afficher du texte de diagnostic devant les yeux, et n'est pas utilisée pour le rendu visuel. La caméra n'est pas non plus contrôlée par EasyAR.
protected override Camera Camera { get; }
CameraCandidate
Alternative de Camera, utilisera Camera.main si non défini.
public Camera CameraCandidate { get; set; }
CameraCount
Obtenir le nombre des caméras reconnues par le système d'exploitation.
public static int CameraCount { get; }
CameraFrameStarted
À fournir uniquement lors de la création d'une nouvelle source d'images. Elle sera accessible pendant tout le cycle de vie du ARSession.
Si l'image de la caméra est entrée.
protected override bool CameraFrameStarted { get; }
CameraType
Type de camera. Disponible uniquement lorsque Opened est true.
public CameraDeviceType CameraType { get; }
DesiredAndroidCameraApiType
Api Camera Android souhaitée, modifiée avant l'événement DeviceOpened pour être effective.
Si non définie, la sélection sera effectuée en fonction de DesiredCameraPreference.
public Optional<AndroidCameraApiType> DesiredAndroidCameraApiType { get; set; }
DesiredCameraPreference
Les préférences utilisées lors de la création d'un périphérique caméra ne sont valides que si elles sont modifiées avant le démarrage de la session.
public Optional<CameraDevicePreference> DesiredCameraPreference { get; set; }
DesiredFocusMode
Mode de mise au point souhaité. Les modifications ne sont effectives que si elles sont apportées avant l'événement DeviceOpened.
Remarque : Soumis aux limitations matérielles ou système, le contrôle de mise au point peut être inefficace sur certains appareils. Si non défini, il sera sélectionné en fonction de la DesiredCameraPreference.
public Optional<CameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredSize
Taille d'image de caméra souhaitée, effective uniquement si modifiée avant l'événement DeviceOpened.
La taille la plus proche dans SupportedSize sera utilisée. Si non défini, la valeur par défaut s'applique.
public Optional<Vector2Int> DesiredSize { get; set; }
DeviceCameras
Fourni uniquement lors de la création d'une nouvelle source d'images. Il sera consulté lorsque CameraFrameStarted est vrai.
Caméra(s) de l'appareil qui fournit(ssent) les données d'images de caméra. Si les données d'images proviennent de plusieurs caméras, la liste doit inclure toutes les caméras.
Garantit que la valeur est correcte lorsque CameraFrameStarted est vrai.
protected override List<FrameSourceCamera> DeviceCameras { get; }
Display
Fourni uniquement lors de la création d'une nouvelle frame source. Il ne sera accessible que pendant le processus de Assemble().
Fournit les informations du système d'affichage. Vous pouvez utiliser DefaultSystemDisplay ou DefaultHMDDisplay pour obtenir les informations d'affichage par défaut.
protected override IDisplay Display { get; }
FocusMode
Mode de mise au point. N'est disponible que lorsque Opened est true.
public CameraDeviceFocusMode FocusMode { set; }
FrameRateRange
Plage de fréquence d'images. Disponible uniquement lorsque Opened est true.
public Vector2 FrameRateRange { get; }
FrameRateRangeIndex
Index de la plage actuelle de cadence d'images de l'appareil. Disponible uniquement lorsque Opened est true.
public int FrameRateRangeIndex { get; set; }
Index
Index de la caméra. Disponible uniquement lorsque Opened est true.
public int Index { get; }
IsAvailable
Fourni uniquement lors de la création d'une nouvelle source de frame. Il n'est accessible que pendant le processus de Assemble().
Indique si la source de frame actuelle est disponible.
Si la valeur est nulle, CheckAvailability() sera appelée, et la valeur sera récupérée après la fin de la Coroutine.
protected override Optional<bool> IsAvailable { get; }
IsCameraUnderControl
À fournir uniquement lors de la création d'une nouvelle frame source. Il ne sera accessible que pendant le processus de Assemble().
Lorsque la valeur est true, la session met à jour le transform de la caméra et effectue le rendu de l'image de la caméra.
Lors de la création d'une extension de casque, cela doit être false. Vous devez avoir un contrôle total sur la caméra 3D dans la scène. Vous devez gérer le rendu de la caméra, en particulier en mode VST.
protected override bool IsCameraUnderControl { get; }
IsHMD
À fournir uniquement lors de la création d'une nouvelle frame source. Elle ne sera accessible que durant le processus Assemble().
Indique si la frame source actuelle est un casque de réalité virtuelle. Si c'est un casque, les informations de diagnostic s'afficheront sur un panneau 3D devant la caméra.
Certains frame filters fonctionnent différemment selon les appareils.
protected override bool IsHMD { get; }
Opened
L'appareil photo est-il ouvert ?
public bool Opened { get; }
Parameters
Paramètres de la caméra. Disponible uniquement lorsque Opened est à true.
public CameraParameters Parameters { get; set; }
Size
Taille d'image actuelle. Disponible uniquement lorsque Opened est true.
La modification utilisera la taille la plus proche parmi celles de SupportedSize.
Si la taille d'image est modifiée pendant l'enregistrement par FrameRecorder, les données d'enregistrement cesseront de se mettre à jour et un nouvel enregistrement devra être lancé après fermeture.
public Vector2Int Size { get; set; }
SupportedFrameRateRange
Plages de fréquence d'images prises en charge par l'appareil actuel. Disponible uniquement lorsque Opened est true.
public List<Vector2> SupportedFrameRateRange { get; }
SupportedSize
Toutes les tailles d'image prises en charge par l'appareil actuel. Disponible uniquement lorsque Opened est true.
public List<Vector2Int> SupportedSize { get; }
enabled
Le runtime ARSession démarre/arrête la collecte des données du flux vidéo. La collecte ne commence qu'une fois la session démarrée *et* lorsque MonoBehaviour.enabled est à true.
public bool enabled { get; set; }
Méthodes
AutoFocus()
Does auto focus once. It is only available when FocusMode is Normal or Macro.
public bool AutoFocus()
Close()
Éteindre l'appareil.
public void Close()
OnSessionStart(ARSession)
À fournir uniquement lors de la création d'une nouvelle source de trames. On y accède uniquement pendant le processus de StartSession().
Traite le démarrage de la session si cette source de trames est déjà assemblée dans Assembly. Cette méthode est conçue pour une initialisation différée, où vous pouvez effectuer des travaux d'initialisation spécifiques à la RA.
protected override void OnSessionStart(ARSession session)
Paramètres
session
OnSessionStop()
Fourni uniquement lors de la création d'une nouvelle source d'images. Elle sera consultée pendant StopSession(bool) ou d'autres processus d'arrêt/endommagement de session.
Traite l'arrêt de la session, si cette source d'images a été intégrée à Assembly. Vous pouvez utiliser cette méthode pour détruire les ressources créées par StartSession() et pendant l'exécution de la session, et restaurer l'état interne. L'appel de cette méthode est garanti avant la destruction de la session. Si la source d'images est détruite avant la session, elle ne sera pas appelée et la session sera endommagée.
protected override void OnSessionStop()
Open()
Ouvrez le périphérique. Si Open() et Close() ne sont pas appelés manuellement, ARSession appellera automatiquement Open() après son démarrage.
Disponible uniquement après le démarrage de la session.
public void Open()
SetFlashTorch(bool)
Définit le mode flash torch. Disponible uniquement lorsque Opened est true.
public bool SetFlashTorch(bool on)
Paramètres
on
Événements
DeviceClosed
Événement d'arrêt de l'appareil.
public event Action DeviceClosed
DeviceOpened
Événement d'ouverture de l'appareil, une valeur bool indique si l'opération a réussi.
public event Action<bool, PermissionStatus, string> DeviceOpened
DeviceStateChanged
Événements d'indisponibilité tels que la déconnexion de l'appareil ou la préemption (Windows uniquement).
public event Action<CameraState> DeviceStateChanged