Class MotionTrackerFrameSource
- Espace de noms
- easyar
- Assembly
- EasyAR.Sense.dll
Un MonoBehaviour contrôlant un easyar.MotionTrackerCameraDevice dans une scène, pour étendre ses fonctionnalités sous Unity.
Cette source d'images (frame source) est un appareil de suivi de mouvement qui produit des données de mouvement lorsqu'utilisée dans une ARSession.
public class MotionTrackerFrameSource : FrameSource
- Héritage
-
MotionTrackerFrameSource
- Membres hérités
Propriétés
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 à Camera, valable uniquement lorsque Unity XR Origin n'est pas utilisé. Si non défini, utilisera Camera.main.
public Camera CameraCandidate { get; set; }
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; }
DesiredFocusMode
Mode de mise au point souhaité. Les modifications ne seront effectives que si elles sont effectuées avant l'événement DeviceOpened ou avant OnEnable.
Remarque : En raison de limitations matérielles ou système, l'activation/désactivation de la mise au point pourrait ne pas fonctionner sur certains appareils.
public Optional<MotionTrackerCameraDeviceFocusMode> DesiredFocusMode { get; set; }
DesiredFrameRate
Taux de rafraîchissement d'appareil souhaité. Les modifications ne prendront effet que si elles sont effectuées avant l'événement DeviceOpened ou OnEnable.
public Optional<MotionTrackerCameraDeviceFPS> DesiredFrameRate { get; set; }
DesiredMinQualityLevel
Niveau de qualité minimal autorisé attendu, effectif uniquement si modifié avant Assemble().
public Optional<MotionTrackerCameraDeviceQualityLevel> DesiredMinQualityLevel { get; set; }
DesiredResolution
Résolution souhaitée, efficace uniquement si modifiée avant l'événement DeviceOpened ou OnEnable.
Si la taille de l'image est modifiée pendant l'enregistrement FrameRecorder, les données d'enregistrement cesseront d'être mises à jour. Il faudra fermer puis redémarrer l'enregistrement.
public Optional<MotionTrackerCameraDeviceResolution> DesiredResolution { get; set; }
DesiredTrackingMode
Mode de suivi souhaité, n'est efficace que si modifié avant le démarrage de la session.
public Optional<MotionTrackerCameraDeviceTrackingMode> DesiredTrackingMode { 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; }
DeviceQualityLevel
Obtenir la qualité du Motion Tracking sur l'appareil, combinée au scénario d'application, cette valeur permet de juger s'il faut lancer le Motion Tracking.
public static MotionTrackerCameraDeviceQualityLevel DeviceQualityLevel { 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; }
FrameRateRange
Plage de fréquence d'images. Disponible uniquement lorsque Opened est true.
public Vector2 FrameRateRange { 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; }
LocalPointCloud
Informations de position des données actuelles du nuage de points. Disponible uniquement lorsque Opened est true.
public List<Vector3> LocalPointCloud { get; }
Opened
L'appareil photo est-il ouvert ?
public bool Opened { get; }
Size
Taille actuelle de l'image. Disponible uniquement lorsque Opened et MonoBehaviour.enabled sont tous deux true.
public Vector2Int Size { 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
Close()
Éteindre l'appareil.
public void Close()
HitTestAgainstHorizontalPlane(Vector2)
Effectuer un Hit Test sur les plans horizontaux détectés en temps réel dans le champ de vision actuel. Après avoir cliqué sur un plan horizontal, renvoyer les coordonnées du point 3D le plus proche du rayon du Hit Test sur ce plan. pointInView doit être normalisé dans l'intervalle [0, 1]^2.
public List<Vector3> HitTestAgainstHorizontalPlane(Vector2 pointInView)
Paramètres
pointInView
HitTestAgainstPointCloud(Vector2)
Dans le nuage de points actuel, effectuez un Hit Test pour obtenir les coordonnées de position d'un point 3D le plus proche le long d'un rayon allant de près à loin de la caméra. pointInView doit être normalisé dans [0, 1]^2.
public List<Vector3> HitTestAgainstPointCloud(Vector2 pointInView)
Paramètres
pointInView
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()
Ouvrir le périphérique. Si Open() et Close() ne sont pas appelés manuellement, ARSession ouvrira automatiquement Open() après son démarrage.
public void Open()
É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